因此,由于某种原因,我们的记录器已停止记录,我完全失去了原因.
我在我的项目中使用的是以下内容:
log4net配置:
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="UdpAppender" />
<appender-ref ref="RollingFile" />
</root>
<appender name="UdpAppender" type="log4net.Appender.UdpAppender">
<remoteAddress value="127.0.0.1" />
<remotePort value="8180" />
<layout type="log4net.Layout.XmlLayoutSchemaLog4j">
<locationInfo value="true" />
</layout>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="Logs/DA.RA.log"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="10MB"/>
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %date %logger - %message%newline"/>
</layout>
</appender>
</log4net>
在我的web.config中,我有以下行:
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=a3d255455d3dcb36"
requirePermission="false"/>
在我的global.asax中,我在application_start方法中有以下行:
string filename = Server.MapPath( @"~\XML\log4net.xml" );
log4net.Config.XmlConfigurator.ConfigureAndWatch( new System.IO.FileInfo( filename ) );
当我在我的任何页面中调用记录器时,我使用:
private static readonly ILog logger = LogManager.GetLogger(typeof(ReportParameters));
我在网上找到了很多不同的东西.这些包括:
将以下行添加到项目中的程序集中
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
我试过了:
[assembly: log4net.Config.XmlConfigurator()]
我已将log4net.dll的版本从1.2.10.0升级到1.2.11.0.
我尝试将log4net appender添加到web.config文件而不是它自己的文件中,我仍然没有从日志中获得任何东西.
最佳答案 尝试打开log4net的内部调试并检查或共享结果:
注意:我制作了一个示例应用程序并使用了相同的log4net.xml文件和ConfigureAndWatch语句,并且它没有问题.我认为你有文件名路径解析问题或写入问题的权限.创建日志文件夹如果没有.
您需要添加到web.config
<appSettings>
<add key="log4net.Internal.Debug" value="true" />
</appSettings>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\\inetpub\\wwwroot\\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>