我的解决方案下的log4net问题
本文关键字:log4net 问题 解决方案 我的 | 更新日期: 2023-09-27 17:57:54
在我的VS2010解决方案下,我遇到了这种情况:
- 网站
- 库1
- 库2
在global.asax.cs上,我使用初始化log4net配置
private static log4net.ILog _logger = log4net.LogManager.GetLogger("globalASAX");
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
log4net.Config.XmlConfigurator.Configure();
_logger.Info("[APPLICATION START] " + DateTime.Now.ToString());
}
它运行良好,log.txt文件中提供了正确的应用程序启动消息。当我尝试在DLL Library1或Library2上可用的类上使用日志时,就会出现问题。
我添加了一行:
private static log4net.ILog _logger = log4net.LogManager.GetLogger(typeof(ImageRepository));
但当我尝试所有_logger.error("blabla")时,日志文件上什么都没有发生;logger的所有属性都是false(即isdebugenerable=false)。我该怎么解决?我遵循了这里的说明:
http://logging.apache.org/log4net/release/manual/configuration.html
log4net的配置位于web.config文件下:
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString">
<conversionPattern value="log'explorer-log-%date{ yyyy.MM.dd.HH.mm.ss}-[%processid].log"/>
</file>
<appendToFile value="true"/>
<maximumFileSize value="1024KB"/>
<maxSizeRollBackups value="5"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingFile"/>
</root>
</log4net>
有人能帮我吗?谢谢Andrea
我怀疑log4net找不到您的类型ImageRepository的记录器。作为一个快速检查,创建一个命名的记录器并尝试调用它。
private static log4net.ILog _logger = log4net.LogManager.GetLogger("FooLog");
并配置
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingFile"/>
</root>
<logger name="FooLog">
<level value="DEBUG"/>
<appender-ref ref="RollingFile"/>
</logger>
理论上这应该有效(我相信你已经知道了)。然而,一般来说,当您没有将任何内容记录到文件中时,有两个区域需要检查。我要检查的第一个区域是文件附加程序本身。文本文件可能被锁定,这可能会导致消息丢失。我要检查的另一件事是确保log4net在库中正确初始化。应该是,但检查一下也无妨。如果这两种解决方案都没有帮助,请尝试打开log4net本身的调试,看看会出现什么错误消息。这里有一个链接,告诉你如何打开这些消息:
http://haacked.com/archive/2006/09/27/Log4Net_Troubleshooting.aspx