国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

ABP框架中的日志功能完全解析

2024-07-10 12:47:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

ASP.NET Boilerplate使用Castle Windsor's logging facility日志記錄工具,并且可以使用不同的日志類庫(kù),比如:Log4Net, NLog, Serilog... 等等。對(duì)于所有的日志類庫(kù),Castle提供了一個(gè)通用的接口來(lái)實(shí)現(xiàn),我們可以很方便的處理各種特殊的日志庫(kù),而且當(dāng)業(yè)務(wù)需要的時(shí)候,很容易替換日志組件。

譯者注釋:Castle是什么:Castle是針對(duì).NET平臺(tái)的一個(gè)開(kāi)源項(xiàng)目,從數(shù)據(jù)訪問(wèn)框架ORM到IOC容器,再到WEB層的MVC框架、AOP,基本包括了整個(gè)開(kāi)發(fā)過(guò)程中的所有東西。ASP.NET Boilerplate的ioc容器就是通過(guò)Castle實(shí)現(xiàn)的。

Log4Net 是asp.net下面最流行的一個(gè)日志庫(kù)組件, ASP.NET Boilerplate 模板也使用了Log4Net日志庫(kù)組件,但是呢,我們這里僅僅通過(guò)一行關(guān)鍵代碼就實(shí)現(xiàn)Log4Net 的依賴注入(具體說(shuō)明在下面的配置文件),所以,如果你想替換成自己的日志組件,也很容易。

獲取日志記錄器logger

不管你選擇哪一個(gè)日志庫(kù)組件,通過(guò)代碼來(lái)進(jìn)行日志記錄都是一樣的。(這里吐槽, Castle's 通用 ILogger 接口實(shí)在太牛逼了)。

下面進(jìn)入正題:(譯者注:下面的代碼是abp框架的Castle.Core源碼分析以及實(shí)現(xiàn))

1、首先呢,我們要先處理日志記錄器對(duì)象logger, ASP.NET Boilerplate框架使用了dependency injection依賴注入技術(shù),我們可以很方便的使用依賴注入生成日志記錄器對(duì)象logger。

接下來(lái)我們看一下 ASP.NET Boilerplate是怎么實(shí)現(xiàn)日志記錄功能的吧:

using Castle.Core.Logging; //1: 導(dǎo)入日志的命名空間,Castle.Core.Loggingpublic class TaskAppService : ITaskAppService{   //2:通過(guò)依賴注入獲取日志記錄器對(duì)象。  這里先定義了一個(gè)ILogger類型的public屬性Logger,這個(gè)對(duì)象就是我們用來(lái)記錄日志的對(duì)象。在創(chuàng)建了TaskAppService對(duì)象(就是我們應(yīng)用中定義的任務(wù))以后,通過(guò)屬性注入的方式來(lái)實(shí)現(xiàn)。  public ILogger Logger { get; set; }  public TaskAppService()  {    //3: 如果沒(méi)有日志記錄器,將日志記錄器返回一個(gè)空的實(shí)例,不寫(xiě)日志。這是依賴注入的最佳實(shí)現(xiàn)方式,   //  如果你不定義這個(gè)空的日志記錄器,當(dāng)我們獲取對(duì)象引用并且實(shí)例化的時(shí)候,就會(huì)產(chǎn)生異常。   //  這么做,保證了對(duì)象不為空。所以,換句話說(shuō),不設(shè)置日志記錄器,就不記錄日志,返回一個(gè)null的對(duì)象。   //  NullLogger對(duì)象實(shí)際上什么都木有,空的。這么做,才能保證我們定義的類在實(shí)例化時(shí)正常運(yùn)作。   Logger = NullLogger.Instance;  }   public void CreateTask(CreateTaskInput input)   {   //4: 寫(xiě)入日志   Logger.Info("Creating a new task with description: " + input.Description);   //TODO: save task to database...   } } 

寫(xiě)入日志以后,我們可以查看日志文件,就像下面的格式:

INFO 2014-07-13 13:40:23,360 [8 ] SimpleTaskSystem.Tasks.TaskAppService - Creating a new task with description:Remember to drink milk before sleeping!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阜平县| 响水县| 慈溪市| 永新县| 霍山县| 广德县| 衡南县| 东城区| 濮阳市| 临澧县| 霍林郭勒市| 铁岭县| 西乌珠穆沁旗| 嘉黎县| 小金县| 遂昌县| 临西县| 昆明市| 秦皇岛市| 台南县| 密山市| 罗定市| 定边县| 饶阳县| 开平市| 平远县| 客服| 分宜县| 茌平县| 封开县| 四川省| 宜城市| 平潭县| 精河县| 苍溪县| 读书| 巴彦淖尔市| 无棣县| 巴彦淖尔市| 开化县| 桓台县|