日志记录在应用程序中部分工作
本文关键字:工作 中部 应用程序 记录 日志 | 更新日期: 2023-09-27 18:36:25
在我的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");
之后我只使用记录器。信息,记录器。类中不同地方的错误方法。从第一页开始,所有内容都进入MyWPFApplication.txt
文件,但任何后续页面都没有内容。奇怪的是,在 Logs 文件夹中,我确实看到有另一个文件(null)正在创建.txt但它是空的。你在这里看到我可能做错了什么吗?
合乎逻辑的解释是,您在其他类中具有不同的记录器名称。检查名称是否为 idd 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>
日志4网常见问题