Log4net没有记录任何内容

时间:2018-03-25 18:09:16

标签: asp.net logging log4net

我无法让log4net在我的ASP.NET项目上工作。我的web.config看起来像这样:

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
 </configSections>
<log4net debug="true">
<appender name="console" type="log4net.Appender.ConsoleAppender">
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %level %logger - %message%newline" />
  </layout>
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
  <file value="CardGame.log" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <maximumFileSize value="10MB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
  </layout>
</appender>
<root>
  <level value="ALL"/>
  <appender-ref ref="console" />
  <appender-ref ref="file" />
</root>
</log4net>

我的LogHelper类看起来像这样:

public class LogHelper
{
    private static LogHelper _instance = new LogHelper();
    private static volatile object _lock = new object();
    public ILog Logger;

    public static LogHelper Instance
    {
        get
        {
            lock (_lock)
            {
                if (_instance == null)
                {
                    _instance = new LogHelper();
                }
            }
            return _instance;
        }
    }

    private LogHelper()
    {
        Logger = LogManager.GetLogger(typeof(LogHelper));
        Logger.Debug("Debug message");
        Logger.Warn("Warn message");
        Logger.Error("Error message");
        Logger.Fatal("Fatal message");
    }
}

我还添加了一行

log4net.Config.XmlConfigurator.Configure();

到global.asax.cs中的Application_Start

然而,构造函数中的所有记录都不起作用,而且我对它不起作用的想法也没有用。

2 个答案:

答案 0 :(得分:2)

您使用的是哪个版本?这是我的web.config设置

foreach(contact in contacts)

答案 1 :(得分:2)

确保运行该应用的用户对目标文件夹具有写入权限。

我总是通过添加everyone并重新启动池来测试该情况。如果它有效,您就知道它是权限问题,否则请检查代码/配置。