【发布时间】:2018-12-27 04:23:07
【问题描述】:
这是我的应用配置
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type='log4net.Util.PatternString' value='%property{LogPath}\%property{LogFileName}' />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level [%thread] - %message%newline" />
</layout>
</appender>
<appender name="PerformanceLogger" type="log4net.Appender.RollingFileAppender">
<file type='log4net.Util.PatternString' value='%property{LogPath}\%property{PerformanceLogFileName}' />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="1" />
<maximumFileSize value="2MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level [%thread] - %message%newline" />
</layout>
</appender>
<logger Name="PerformanceLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref="PerformanceLogger"/>
</logger>
</log4net>
当我尝试获取记录器并对其进行写入时。它只是为 PerformanceLogger 创建文件,但不写入。
log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
performaceLog = LogManager.GetLogger("PerformanceLogger");
但我的log.Info("test"); 工作正常,它会创建一个文件并写入它。
请问有什么建议吗?
【问题讨论】:
-
从您的 XML 配置看来,
RollingFileAppender和<root>内部都没有<logger>标记。虽然我添加了缺少的 xml,但它也不适合我。我记得很久以前,当我决定使用日志库时,我测试了 log4net,当时很头疼,我使用了Nlog,它就像一个魅力 -
@MohamadArmoon:即使我为 RollingFileAppender 添加记录器,也没有任何区别。如果找不到原因我会等待然后我会去Nlog
-
假设您的问题中的配置正是您在应用程序中使用的配置,那么您在@中错误地使用了
Name(大写“N”)而不是name987654330@ 定义“PerformanceLogger”的元素。
标签: c# .net log4net log4net-configuration log4net-appender