日志
日志对于大多数系统而言都是不可或缺的。记录错误日志利于系统错误是进行追踪,快速排查问题;操作日志则帮助我们分析系统的操作情况,是否存在异常的操作,记录操作的频率信息等。日志的记录一般都是使用第三方比较成熟的日志类库,较为常见就是Log4net和NLog。现使用Log4net进行日志记录
Log4Net
1、通过Nuget引入log4net.AspNetCore
2、添加配置文件log4net.config
1 2 <?xml version="1.0" encoding="utf-8" ?> 3 <configuration> 4 <!-- This section contains the log4net configuration settings --> 5 <log4net> 6 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 7 <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" /> 8 </appender> 9 10 <appender name="FileAppender" type="log4net.Appender.FileAppender"> 11 <file value="log_file.log" /> 12 <appendToFile value="true" /> 13 <layout type="log4net.Layout.PatternLayout"> 14 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 15 </layout> 16 </appender> 17 18 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 19 <file value="logfile/" /> 20 <appendToFile value="true" /> 21 <rollingStyle value="Composite" /> 22 <staticLogFileName value="false" /> 23 <datePattern value="yyyyMMdd'.log'" /> 24 <maxSizeRollBackups value="10" /> 25 <maximumFileSize value="1MB" /> 26 <layout type="log4net.Layout.PatternLayout"> 27 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 28 </layout> 29 </appender> 30 31 <!-- Setup the root category, add the appenders and set the default level --> 32 <root> 33 <level value="ALL" /> 34 <appender-ref ref="ConsoleAppender" /> 35 <appender-ref ref="FileAppender" /> 36 <appender-ref ref="RollingLogFileAppender" /> 37 </root> 38 39 </log4net> 40 </configuration>
3、添加log4net简单封装类
1 public static class Log4NetHelper 2 { 3 private static log4net.ILog log = null; 4 static Log4NetHelper() 5 { 6 ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository"); 7 string log4netCongifPath = Path.Combine(AppContext.BaseDirectory, "log4net.config"); 8 XmlConfigurator.Configure(repository, new FileInfo(log4netCongifPath)); 9 log = LogManager.GetLogger(repository.Name, "CorePlatformLog"); 10 } 11 12 13 /// <summary> 14 /// 信息 15 /// </summary> 16 /// <param name="Message"></param> 17 public static void Log(string Message) 18 { 19 log.Info(Message); 20 } 21 22 /// <summary> 23 /// 信息 24 /// </summary> 25 /// <param name="Message"></param> 26 /// <param name="ex"></param> 27 public static void Log(string Message, Exception ex) 28 { 29 log.Info(Message, ex); 30 } 31 32 /// <summary> 33 /// 错误 34 /// </summary> 35 /// <param name="Message"></param> 36 public static void Error(string Message) 37 { 38 log.Error(Message); 39 } 40 41 /// <summary> 42 /// 错误 43 /// </summary> 44 /// <param name="Message"></param> 45 /// <param name="ex"></param> 46 public static void Error(string message,Exception ex) 47 { 48 log.Error(message, ex); 49 } 50 51 /// <summary> 52 /// 错误 53 /// </summary> 54 /// <param name="Message"></param> 55 /// <param name="ex"></param> 56 public static void Error(string Message, Exception ex) 57 { 58 log.Error(Message, ex); 59 } 60 61 /// <summary> 62 /// Debug 63 /// </summary> 64 /// <param name="Message"></param> 65 public static void Debug(string Message) 66 { 67 log.Debug(Message); 68 } 69 70 /// <summary> 71 /// Debug 72 /// </summary> 73 /// <param name="Message"></param> 74 /// <param name="ex"></param> 75 public static void Debug(string Message, Exception ex) 76 { 77 log.Debug(Message, ex); 78 } 79 80 /// <summary> 81 /// 警告 82 /// </summary> 83 /// <param name="Message"></param> 84 public static void Warn(string Message) 85 { 86 log.Warn(Message); 87 } 88 89 /// <summary> 90 /// 警告 91 /// </summary> 92 /// <param name="Message"></param> 93 /// <param name="ex"></param> 94 public static void Warn(string Message, Exception ex) 95 { 96 log.Warn(Message, ex); 97 98 } 99 100 /// <summary> 101 /// 致命错误 102 /// </summary> 103 /// <param name="Message"></param> 104 public static void Fatal(string Message) 105 { 106 log.Fatal(Message); 107 } 108 109 /// <summary> 110 /// 致命错误 111 /// </summary> 112 /// <param name="Message"></param> 113 /// <param name="ex"></param> 114 public static void Fata(string Message, Exception ex) 115 { 116 log.Fatal(Message, ex); 117 } 118 }
4、在异常捕获处或者需要日志的地方添加日志记录
(略)。