C# log4net配置和使用

By | 2019-10-09

项目的日志组件对与开发是非常有必要的,这样既方便前期的开发测试也方便项目后期的项目维护,这里简单记录下c# log4net配置使用方法,以便查阅

1.右键解决方案,选择管理NuGet程序包

NuGet

2.安装log4net,正常会在bin目录生成log4net.dll

log4net

3.编辑项目配置文件,App.config

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <logger name="logerror">
      <level value="ERROR" />
      <appender-ref ref="ErrorAppender" />
    </logger>
    <logger name="loginfo">
      <level value="INFO" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log//LogError//" />
		<!--是否追加到文件-->
      <param name="AppendToFile" value="true" />
 <!--是否只写到一个文件中-->
      <param name="StaticLogFileName" value="false" />
<!—此处按日期产生文件夹,文件名固定-->
      <param name="DatePattern" value=""Logs_"yyyyMMdd".txt""/>
<!-- 按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite]) -->
<param name="RollingStyle" value=" Composite " />
<!-- 每个文件的大小。只在混合方式与文件大小方式下使用, 超出大小后在所有文件名后自动增加正整数重新命名 -->
<param name="maximumFileSize" value="10KB" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="2" />
<!--记录的格式-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log//LogInfo//" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="maximumFileSize" value="10MB" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" />
      <param name="RollingStyle" value="Composite" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
  </log4net>

4.在Assemblyinfo.cs添加以下代码

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

5.封装一个LogHelper.cs日志类,以便管理log4net

public class LogHelper
    {
        public static readonly log4net.ILog Loginfo = log4net.LogManager.GetLogger("loginfo");

        public static readonly log4net.ILog Logerror = log4net.LogManager.GetLogger("logerror");

        private LogHelper()
        {
        }

        public static void SetConfig()
        {
            log4net.Config.XmlConfigurator.Configure();
        }

        public static void WriteLog(string info)
        {
            if (Loginfo.IsInfoEnabled)
            {
                Loginfo.Info(info);
            }
        }

        public static void WriteLog(string info, Exception ex)
        {
            if (Logerror.IsErrorEnabled)
            {
                Logerror.Error(info, ex);
            }
        }
}

6.调用 LogHelper.WriteLog(**)接口,便会在程序目录生成log4net的日志文件了

log4net

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注