在使用log4net的时候,编写的配置文件,有时候我们可能需要放在其它路径下面,而是不是用默认的App.config,这时候,只需要在AssemblyInfo.cs里面添加一行代码即可:

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

        上一篇博客我简单介绍了log4net的简单使用,链接地址https://blog.csdn.net/qq_41061437/article/details/97812731,但是在正常开发中,使用它不止这么简单,我们可能会根据日志的不同级别写入不同的文件当中。log4net有多种级别的日志记录,按照从高到低的顺序是:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL,那这次来讲解一下配置文件怎么使用。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="ErrorAppender" />
      <appender-ref ref="InfoAppender" />
    </root>
    
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogError\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
      </layout>
      <filter type="log4net.Filter.LeveRangeFilter">
          <param name="levelMin" value="ERROR"/>
          <param name="levelMax" value="ERROR"/>
      </filter>
    </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
      </layout>
      <filter type="log4net.Filter.LeveRangeFilter">
          <param name="levelMin" value="INfo"/>
          <param name="levelMax" value="INFO"/>
      </filter>
    </appender>
  </log4net>
 
  
</configuration>

        这里只展示两种方式,如果需要,可以自己再添加相应的级别。

        那么如何在代码中进行调用呢?只需要几句代码就可以了,首先是读取配置文件:

private static readonly ILog loginfo = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType)

        在代码中使用的时候,只需要在需要的地方,调用相应的方法即可,比如要记录Info级别的,就使用loginfo.Info("正常信息"),如果要打印错误信息,就使用loginfo.Error("错误记录",new Exception("抛出异常了"))。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐