log4net配置

1、日志文件以大小进行自动变换

    <!--日志输出方式-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志文件名-->
      <file value="Log\\LogInfo\\info.log" />
      <encoding value="utf-8" />
      <!--是否追加到文件-->
      <appendToFile value="true" />
      <!-- 大小方式 -->
      <rollingStyle value="Size" />
      <!--日志文件名是否为静态-->
      <staticLogFileName value="true"/>
      <!--日志文件最多个数-->
      <maxSizeRollBackups value="60" />
      <!--当个日志文件最大大小-->
      <maximumFileSize value="2kB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

2、日志文件以时间自动更换

    <!--日志输出方式-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志文件名前缀-->
      <file value="Log\\LogInfo\\info_" />
      <encoding value="utf-8" />
      <!--是否追加到文件-->
      <appendToFile value="true" />
      <!--变换新文件的形式为日期-->
      <rollingStyle value="Date" />
      <!--追加日志名,此配置每分钟生成一个日志文件,eg:info_20211014-1122.log,info_20211014-1123.log-->
      <datePattern value="yyyyMMdd-HHmm'.log'" />
        
      <!--追加日志名单引号('')中文字不变,此配置每天生成一个日志文件,eg:info_20211014.log,info_20211015.log-->
      <!--<datePattern value="yyyyMMdd'.log'" /> -->
      <!--日志文件名是否为静态-->
      <staticLogFileName value="false"/>
      <!--日志文件最多个数-->
      <maxSizeRollBackups value="60" />
      <!--当个日志文件最大大小-->
      <maximumFileSize value="5MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

3、混合模式

    <!--日志输出方式-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志文件名-->
      <file value="Log\\LogInfo\\info_" />
      <encoding value="utf-8" />
      <!--是否追加到文件-->
      <appendToFile value="true" />
      <!-- 时间大小混合方式 -->
      <rollingStyle value="Composite" />
      <!--追加日志名-->
      <datePattern value="yyyyMMdd-HHmm'.log'" />
      <!--日志文件名是否为静态-->
      <staticLogFileName value="false"/>
      <!--日志文件最多个数-->
      <maxSizeRollBackups value="60" />
      <!--当个日志文件最大大小-->
      <maximumFileSize value="2kB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

4、过滤日志级别

    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Log\\LogError\\err_" />
      <encoding value="utf-8" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd'.log'" />
      <staticLogFileName value="false"/>
      <maxSizeRollBackups value="60" />
      <!--输出日志过滤,最小error最大fatal-->
      <filter type ="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR" />
        <levelMax value ="FATAL" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

5、完整配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <log4net>
    <!--日志输出方式-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志文件名-->
      <file value="Log\\LogInfo\\info_" />
      <encoding value="utf-8" />
      <!--是否追加到文件-->
      <appendToFile value="true" />
      <!-- 时间大小混合方式 -->
      <rollingStyle value="Composite" />
      <!--追加日志名(旧日志文件名)-->
      <datePattern value="yyyyMMdd'.log'" />
      <!--日志文件名是否为静态-->
      <staticLogFileName value="false"/>
      <!--日志文件最多个数-->
      <maxSizeRollBackups value="60" />
      <!--当个日志文件最大大小-->
      <maximumFileSize value="5M" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Log\\LogError\\err_" />
      <encoding value="utf-8" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd'.log'" />
      <staticLogFileName value="false"/>
      <maxSizeRollBackups value="60" />
      <!--输出日志过滤,最小error最大fatal-->
      <filter type ="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR" />
        <levelMax value ="FATAL" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="ErrorAppender" />
      <appender-ref ref="InfoAppender" />
    </root>
  </log4net>
</configuration>

6、MVC中简单帮助类

public class Log4NetHelper
    {
        private static readonly ILog Log;

        /// <summary>
        /// 初始化
        /// </summary>
        static Log4NetHelper()
        {
            var logCfg = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config"));
            XmlConfigurator.ConfigureAndWatch(logCfg);
            Log = LogManager.GetLogger("log4net");
        }

        /// <summary>
        /// 写调试日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="ex"></param>
        public static void Debug(string message, Exception ex = null)
        {
            Log.Debug(message, ex);
        }

        /// <summary>
        /// 写错误日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="ex"></param>
        public static void Error(string message, Exception ex = null)
        {
            Log.Error(message, ex);
        }

        /// <summary>
        /// 写严重错误日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="ex"></param>
        public static void Fatal(string message, Exception ex = null)
        {
            Log.Fatal(message, ex);
        }

        /// <summary>
        /// 写信息
        /// </summary>
        /// <param name="message"></param>
        /// <param name="ex"></param>
        public static void Info(string message, Exception ex = null)
        {
            Log.Info(message, ex);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值