JWT+Log4net配置與使用詳解
Log4net的優(yōu)點(diǎn)
log4net是.Net下一個(gè)非常優(yōu)秀的開源日志記錄組件。log4net記錄日志的功能非常強(qiáng)大。它可以將日志分不同的等級(jí),以不同的格式,輸出到不同的媒介。程序運(yùn)行過程中就能生成并輸出日志信息而無需人工干預(yù),可供開發(fā)人員盡快找到應(yīng)用程序中的Bug。另外,日志信息可以輸出到不同的地方。
Log4net的結(jié)構(gòu)
log4net 有四種主要的組件,分別是Logger(記錄器), Repository(庫), Appender(附著器)以及Layout(布局)
重點(diǎn)---網(wǎng)上教程項(xiàng)目中添加log4日志流程如下
1.項(xiàng)目中都會(huì)有一個(gè)工具類庫,然后添加對(duì)log4net.dll的引用,再該類庫下封裝一個(gè)Log4Help.cs幫助類
2.在MVC,API項(xiàng)目中再次添加對(duì)log4net.dll的引用,在根目錄的Global.asax.cs中的Application_Start方法中添加:
log4net.Config.XmlConfigurator.Configure();
3.添加Log4Net.config配置文件
講解錯(cuò)誤請(qǐng)多理解:
第二部操作是可以忽略掉的,項(xiàng)目一直都是提倡封裝解耦,既然已經(jīng)將log4封裝到幫助類庫中,是為了其它BLL層和DAL層能夠使用,但是MVC和API層又再一次重復(fù)引用log4類庫,作用也只是為了讀取配置Log4Net.config配置文件,那么完全可以把配置文件讀取寫入到第一步中
[assembly: XmlConfigurator(ConfigFile = "Config/Log4Net.config", Watch = true)] //重點(diǎn)是這句話,讀取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> /// 錯(cuò)誤日志信息 /// </summary> /// <param name="info"></param> /// <param name="ex"></param> public static void Error(string info, Exception ex) { logerror.Error(info, ex); } } }
Log4Net.config配置文件,我是放在MVC這個(gè)文件目錄下
如果去掉Config文件夾目錄,直接將Log4Net.config放在項(xiàng)目根目錄,讀取路徑配置如下
[assembly: XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
個(gè)人都是將數(shù)據(jù)庫鏈接字符串database.config和在線配置appSettings單獨(dú)用兩個(gè)文件拆分維護(hù),全放在web.config,參數(shù)配置和鏈接字符串太多,容易眼花也不太好找
Log4net配置
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> //logerror這個(gè)名字是在幫助類中使用的 <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> //對(duì)應(yīng)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>
public class HomeController : Controller { public ActionResult Index() { Log4Help.Info("1111"); Log4Help.Error("12345",null); return View(); } }
至此,所有準(zhǔn)備工作以及配置工作全部完成,運(yùn)行應(yīng)用程序,然后打開項(xiàng)目資源管理文件,就能看見log文件夾
源碼下載地址:https://github.com/yaols/JWT.MvcDemo
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.Net 中獲取一周第一天,一月第一天等實(shí)現(xiàn)代碼
.Net中獲取一周第一天、最后一天,一月第一天、最后一天2009-12-12ASP.NET Session會(huì)導(dǎo)致的性能問題
你的站點(diǎn)有被客戶投訴很慢嗎?是不是查了很多遍還是沒有完全解決?是不是數(shù)據(jù)庫沒有發(fā)現(xiàn)異常,CPU也沒有異常,內(nèi)存占用量沒有異常,GC計(jì)數(shù)沒有異常,硬盤IO也沒有異常,帶寬沒有異常,線路沒有異常,沒有丟包,但就是被投訴?2009-07-07asp.net利用Ajax和Jquery在前臺(tái)向后臺(tái)傳參數(shù)并返回值的實(shí)例
asp.net利用Ajax和Jquery在前臺(tái)向后臺(tái)傳參數(shù)并返回值的實(shí)例,需要的朋友可以參考一下2013-05-05ASP.NET Core 2.0中Razor頁面禁用防偽令牌驗(yàn)證
在這篇短文中,我將向您介紹如何ASP.NET Core2.0 Razor頁面中禁用防偽令牌驗(yàn)證,對(duì)此有興趣的朋友參考學(xué)習(xí)下吧。2018-01-01微信JS-SDK分享功能的.Net實(shí)現(xiàn)代碼
這篇文章主要介紹了微信JS-SDK分享功能的.Net實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-09-09在jquery repeater中添加設(shè)置日期,下拉,復(fù)選框等控件
JQueryElement 更新到了 3.5.1, 今天給大家主要講下如何在 Repeater 的模板中添加設(shè)置一些控件.2011-10-10ASP.NET Core中間件初始化的實(shí)現(xiàn)
在日常使用ASP.NET Core開發(fā)的過程中我們多多少少會(huì)設(shè)計(jì)到使用中間件的場(chǎng)景,本文探究了ASP.NET Core中間件是如何初始化的,感興趣的可以了解一下2021-05-05ASPNET按鈕只執(zhí)行客戶端代碼不回送頁面實(shí)現(xiàn)思路
有些時(shí)候需要實(shí)現(xiàn)只執(zhí)行客戶端代碼不回送頁面,不過很多童鞋們不清楚如何實(shí)現(xiàn)呢,還好本文的出現(xiàn)將解決你的困擾,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02