[英]Logging partially working in the application
在WPF应用程序中,我正在使用log4net进行日志记录。 该应用程序实现了几个页面。 我的问题是从第一页开始记录工作。 用户导航到的任何其他页面,日志文件中没有任何内容。 我也没有任何例外。
这是在我的app.config
设置方法:
<log4net>
<!-- Define some output appenders -->
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="..\Logs\%property{LogName}.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="5MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{yyyy/MM/dd HH:mm:ss} [%thread] %-5level %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="MyWPFApplicationLog" />
<acceptOnMatch value="false" />
</filter>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingFileAppender" />
</root>
<appender name="MyWPFApplicationAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="../Logs/MyWPFApplication.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="1" />
<maximumFileSize value="100MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{yyyy/MM/dd HH:mm:ss} [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<logger name="MyWPFApplicationLog">
<level value="INFO"/>
<appender-ref ref="MyWPFApplicationAppender" />
</logger>
</log4net>
然后我在AssemblyInfo.cs
有以下内容:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
在我要记录日志的所有类中,我声明了以下内容。
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger("MyWPFApplicationLog");
之后,我只需在类的各个位置使用logger.Info,logger.Error方法。 从第一页开始,所有内容都进入MyWPFApplication.txt
文件,但随后的任何页面都没有。 奇怪的是,在Logs文件夹中,我确实看到正在创建另一个文件(null).txt,但该文件为空。 您在这里看到我可能做错了什么吗?
逻辑上的解释是,您在其他类中使用了不同的记录器名称。 检查名称是否为MyWPFApplicationLog。 如果是这样,最好的选择是启用log4net调试以查看记录器是否正在工作/崩溃。 在您的web.config中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
...
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\tmp\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.