Log4Net配置

Log4Net文件超过限制自动添加新文件

 1   <log4net>
 2     <logger name="SystemExceptionLogger"><!--Logger名称-->
 3       <level value="All" />
 4       <appender-ref ref="LogFileAppender" />
 5     </logger>
 6     <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
 7       <param name="File" value="log\\" /><!--文件存储路径-->
 8       <param name="AppendToFile" value="true" /><!--是否继续在同名文件后添加-->
 9       <param name="MaxSizeRollBackups" value="100" /><!--最大备份文件数-->
10       <param name="MaxFileSize" value="100" /><!--单个文件大小-->
11       <param name="StaticLogFileName" value="false" /><!--是否为静态文件名-->
12       <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" /><!--日志文件名-->
13       <param name="RollingStyle" value="Date" />
14 
15       <layout type="log4net.Layout.PatternLayout">
16         <!--日志格式-->
17         <param name="ConversionPattern" value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"  />
18       </layout>
19     </appender>
20   </log4net>

Log4Net单个文件配置

 1   <log4net>
 2     <root>
 3       <level value="WARN" />
 4       <appender-ref ref="LogFileAppender" />
 5     </root>
 6     <logger name="SystemExceptionLogger">
 7       <level value="DEBUG" />
 8     </logger>
 9     <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
10       <param name="File" value="log/Errorlog.log" />
11       <param name="AppendToFile" value="true" />
12       <layout type="log4net.Layout.PatternLayout">
13         <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n" />
14       </layout>
15       <filter type="log4net.Filter.LevelRangeFilter">
16         <param name="LevelMin" value="DEBUG" />
17         <param name="LevelMax" value="WARN" />
18       </filter>
19     </appender>
20   </log4net>

在Global中的Application_Start方法中添加

log4net.Config.XmlConfigurator.Configure();

后台代码,在API的Filter文件夹中新加一个标记

1     public class ApiHandleErrorAttribute : ExceptionFilterAttribute
2     {
3         public override void OnException(HttpActionExecutedContext actionExecutedContext)
4         {
5         LoggerManager.LogSysException(actionExecutedContext.Exception);//异常记录
6             base.OnException(actionExecutedContext);
7         }
8     }

最后就是调用了

 1     public static class LoggerManager
 2     {
 3 
 4         static log4net.ILog log = log4net.LogManager.GetLogger("SystemExceptionLogger");//获取一个日志记录器
 5         #region 异常记录
 6         /// <summary>
 7         /// 记录系统异常
 8         /// </summary>
 9         /// <param name="ex"></param>
10         public static void LogSysException(System.Exception ex)
11         {
12             log.Info(ex);//写入一条新log
13         }
14         #endregion
15     }

测试的时候添加一条代码,注意不要写在try catch中

throw new Exception("我是一个异常");

猜你喜欢

转载自www.cnblogs.com/JessieR/p/8967728.html