我的解决方案下的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问题

我怀疑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