Log4NET Logger类

时间:2017-02-01 12:27:46

标签: log4net log4net-configuration log4net-appender

我是Log4Net的新手,我遇到了一些问题,以便将我的应用程序日志消息记录在日志文件中。我认为Web.config文件配置有问题。这是我在web.config中的一个片段:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

<log4net>
    <root>
    </root>

    <logger name="Tomahawk" additivity="False">
        <level value="ALL" />
        <appender-ref ref="MyFileAppender" />
      </logger>


    <appender name="MyFileAppender" type="log4net.Appender.FileAppender">
      <file value="application.log" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level %logger - %message%newline" />
      </layout>
    </appender>

  </log4net>

此外,我在AssemblyInfo.cs中包含以下行:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

在C#代码中, ALL 我这样做:

ILog log = LogManager.GetLogger("Tomahawk");
log.info("Some debug info...");

但没有任何反应。日志文件中没有记录任何内容。

有没有人对这个问题有所了解?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

第1步 - 创建一个名为 log4net.config的单独文件

第2步 - 从xml中删除这些行

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>

第3步 - 配置与此类似的根部分:

<root>
    <level value="DEBUG" />
    <appender-ref ref="MyFileAppender" />
</root>

第4步 - 在 Program.cs 中包含以下内容:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

第5步 - 在 Startup.cs 类中,让您的记录器使用此全局变量

private static ILog log = LogManager.GetLogger(typeof(Startup));

第6步 - 在配置方法内记录您的信息消息

if (env.IsDevelopment())
{
    log.Info("Yeap! We are in development now! That's great!");

    app.UseDeveloperExceptionPage();
 }

第7步 - 打开 application.log 文件和Voilà!!