Automatically add new files when Log4Net file exceeds limit
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\\" /><!--File storage path --> 8 < param name ="AppendToFile" value ="true" /> <!-- Whether to continue adding files with the same name --> 9 < param name ="MaxSizeRollBackups" value ="100" /> <!-- Maximum number of backup files --> 10 < param name ="MaxFileSize" value ="100" /> <!-- Single file size --> 11 < param name ="StaticLogFileName" value ="false" /> <!-- Is it a static file name --> 12 < param name ="DatePattern" value ="yyyyMMdd".log"" /> <!-- log file name --> 13 < param name ="RollingStyle" value ="Date" /> 14 15 < layout type = "log4net.Layout.PatternLayout" > 16 <!-- Log format --> 17 < param name ="ConversionPattern" value ="%newline %nRecord time: %date %nThread ID:[%thread] %nLog Level: %-5level %nError class: %logger property:[%property{NDC}] - %nError description: %message%newline %n" /> 18 </layout> 19 </appender> 20 </log4net>
Log4Net single file configuration
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>
Add in Application_Start method in Global
log4net.Config.XmlConfigurator.Configure();
Background code, add a new tag to the Filter folder of the API
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 }
Finally, call
1 public static class LoggerManager 2 { 3 4 static log4net.ILog log = log4net.LogManager.GetLogger( " SystemExceptionLogger " ); // Get a logger 5 #region exception record 6 /// <summary> 7 /// Record System exception 8 /// </summary> 9 /// <param name="ex"></param> 10 public static void LogSysException(System.Exception ex) 11 { 12 log.Info(ex);// Write a new log 13 } 14 #endregion 15 }
Add a code when testing, be careful not to write it in try catch
throw new Exception( " I am an exception " );