DotnetCore之旅(5)---日志

日志

    日志对于大多数系统而言都是不可或缺的。记录错误日志利于系统错误是进行追踪,快速排查问题;操作日志则帮助我们分析系统的操作情况,是否存在异常的操作,记录操作的频率信息等。日志的记录一般都是使用第三方比较成熟的日志类库,较为常见就是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、在异常捕获处或者需要日志的地方添加日志记录

(略)。

猜你喜欢

转载自www.cnblogs.com/johnyong/p/11025831.html