log4net 自定义level

来源:互联网 发布:python创建元组 编辑:程序博客网 时间:2024/05/19 23:05

第一步:新建一个类来定义level

  public static class SyncLevel    {        public static readonly log4net.Core.Level SYNCLevel = new log4net.Core.Level(50000, "SYNC");         public static void Sync(this ILog log, string message)        {            log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType,                SYNCLevel, message, null);        }        public static void SyncFormat(this ILog log, string message, params object[] args)        {            string formattedMessage = string.Format(message, args);            log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType,                SYNCLevel, formattedMessage, null);        }    }

第二步:在log4net加载配置前,注册定义的level

        static void Main(string[] args)        {            log4net.LogManager.GetRepository().LevelMap.Add(Cls.SyncLevel.SYNCLevel);            log4net.Config.XmlConfigurator.Configure();

第三步:配置文件中引入:

 <!--按日志容量分割日志文件 10KB一个-->    <appender name="LogFileAppenderBySize" type="log4net.Appender.RollingFileAppender">      <!--是否续写-->      <param name="AppendToFile" value="true"/>      <!--最小锁定模型以允许多个进程可以写入同一个文件-->      <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock"/>      <param name="StaticLogFileName" value="true"/>      <!--按照文件的大小进行变换日志文件-->      <param name="RollingStyle" value="Size"/>      <param name="File" value="logs/sync/sync.log"/>      <!--单个文件最大数量 好像只有在 按Size分割时有效-->      <param name="MaximumFileSize" value="10240KB"/>      <!--保留的log文件数量 超过此数量后 自动删除之前的   好像只有在 按Size分割时有效-->      <param name="MaxSizeRollBackups" value="20000"/>      <param name="StaticLogFileName" value="false"/>      <layout type="log4net.Layout.PatternLayout">        <param name="ConversionPattern" value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n"/>      </layout>      <filter type="log4net.Filter.LevelMatchFilter">        <acceptOnMatch value="true" />        <levelToMatch value="SYNC" />      </filter>      <filter type="log4net.Filter.DenyAllFilter" />    </appender>
原创粉丝点击