【发布时间】:2013-05-16 07:22:41
【问题描述】:
我正在使用Log4Net 在我的.Net Windows service 应用程序中记录异常。
我想提一下,我的 Windows 服务应用程序使用multi-threading execution 运行,这意味着
每个任务都在每个不同的线程上处理,我使用了Delegate - (BeginInvoke) 模式。
重要的是,我正在使用dynamic properties根据应用程序的不同场景使用Log4Net动态生成多个日志文件。
现在,在每个logging/ exception 场景中(在C# 方法中),我都使用Logger.Log 方法来记录带有Log4Net 的信息/异常。
代码(动态文件生成)
GlobalContext.Properties[FileNameParameter] = DirectoryName + fileName;
LogManager.Info(logMessage);
配置设置
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="D:\Data\%property{FileName}_info.log"/>
</appender>
问题是(我相信),由于多线程代码执行,我正在使用 Log4Net 进行跟踪,这很奇怪。
- 有时会生成日志文件,但没有消息内容。
- 有时文件本身不会生成。
- 有时生成的文件很少,但很少生成。
请告诉我为什么 Log4Net 会这样。我需要具有多线程代码执行的稳定日志记录。
提前致谢!
【问题讨论】:
标签: c# multithreading exception windows-services log4net