Log4net的優點
log4net是.Net下一個非常優秀的開源日志記錄組件。log4net記錄日志的功能非常強大。它可以將日志分不同的等級,以不同的格式,輸出到不同的媒介。程序運行過程中就能生成并輸出日志信息而無需人工干預,可供開發人員盡快找到應用程序中的Bug。另外,日志信息可以輸出到不同的地方。
Log4net的結構
log4net 有四種主要的組件,分別是Logger(記錄器), Repository(庫), Appender(附著器)以及Layout(布局)
重點---網上教程項目中添加log4日志流程如下
1.項目中都會有一個工具類庫,然后添加對log4net.dll的引用,再該類庫下封裝一個Log4Help.cs幫助類
2.在MVC,API項目中再次添加對log4net.dll的引用,在根目錄的Global.asax.cs中的Application_Start方法中添加:
log4net.Config.XmlConfigurator.Configure();
3.添加Log4Net.config配置文件
講解錯誤請多理解:
第二部操作是可以忽略掉的,項目一直都是提倡封裝解耦,既然已經將log4封裝到幫助類庫中,是為了其它BLL層和DAL層能夠使用,但是MVC和API層又再一次重復引用log4類庫,作用也只是為了讀取配置Log4Net.config配置文件,那么完全可以把配置文件讀取寫入到第一步中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
[assembly: XmlConfigurator(ConfigFile = "Config/Log4Net.config" , Watch = true )] //重點是這句話,讀取MVC或者APILog4Net.config配置文件 namespace JWT.Common { public class Log4Help { private static readonly ILog loginfo = LogManager.GetLogger( "loginfo" ); private static readonly ILog logerror = LogManager.GetLogger( "logerror" ); /// <summary> /// 打印日志信息 /// </summary> /// <param name="info"></param> public static void Info( string info) { loginfo.Info(info); } /// <summary> /// 錯誤日志信息 /// </summary> /// <param name="info"></param> /// <param name="ex"></param> public static void Error( string info, Exception ex) { logerror.Error(info, ex); } } } |
Log4Net.config配置文件,我是放在MVC這個文件目錄下
如果去掉Config文件夾目錄,直接將Log4Net.config放在項目根目錄,讀取路徑配置如下
1
|
[assembly: XmlConfigurator(ConfigFile = "Log4Net.config" , Watch = true )] |
個人都是將數據庫鏈接字符串database.config和在線配置appSettings單獨用兩個文件拆分維護,全放在web.config,參數配置和鏈接字符串太多,容易眼花也不太好找
Log4net配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<? xml version = "1.0" encoding = "utf-8" ?> < configuration > < configSections > < section name = "log4net" type = "log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </ configSections > < log4net > //logerror這個名字是在幫助類中使用的 < logger name = "logerror" > < level value = "ALL" /> < appender-ref ref = "ErrorAppender" /> //ErrorAppender如下1.1 </ logger > < logger name = "loginfo" > < level value = "ALL" /> < appender-ref ref = "InfoAppender" /> </ logger > //對應1.1名字必須一樣 < appender name = "ErrorAppender" type = "log4net.Appender.RollingFileAppender" > //File用于保存路徑 < param name = "File" value = "Log\\LogError\\" /> < param name = "AppendToFile" value = "true" /> < param name = "MaxSizeRollBackups" value = "100" /> < param name = "MaxFileSize" value = "10240" /> < param name = "StaticLogFileName" value = "false" /> < param name = "DatePattern" value = "yyyyMMdd'.txt'" /> < param name = "RollingStyle" value = "Date" /> < layout type = "log4net.Layout.PatternLayout" > < param name = "ConversionPattern" value = "%d [%t] [%-5level] : %message %newline" /> </ layout > </ appender > < appender name = "InfoAppender" type = "log4net.Appender.RollingFileAppender" > < param name = "File" value = "Log\\LogInfo\\" /> < param name = "AppendToFile" value = "true" /> < param name = "MaxFileSize" value = "10240" /> < param name = "MaxSizeRollBackups" value = "100" /> < param name = "StaticLogFileName" value = "false" /> < param name = "DatePattern" value = "yyyyMMdd'.txt'" /> < param name = "RollingStyle" value = "Date" /> < layout type = "log4net.Layout.PatternLayout" > < param name = "ConversionPattern" value = "%d [%t] [%-5level] : %message %newline" /> </ layout > </ appender > </ log4net > </ configuration > |
1
2
3
4
5
6
7
8
9
10
|
public class HomeController : Controller { public ActionResult Index() { Log4Help.Info( "1111" ); Log4Help.Error( "12345" , null ); return View(); } } |
至此,所有準備工作以及配置工作全部完成,運行應用程序,然后打開項目資源管理文件,就能看見log文件夾
源碼下載地址:https://github.com/yaols/JWT.MvcDemo
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.cnblogs.com/xiaobai123/p/9257278.html