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

首頁 > 編程 > ASP > 正文

詳解ABP框架中的日志管理和設置管理的基本配置

2024-05-04 10:59:13
字體:
來源:轉載
供稿:網友

日志管理
Server side(服務器端)
ASP.NET Boilerplate使用Castle Windsor's logging facility日志記錄工具,并且可以使用不同的日志類庫,比如:Log4Net, NLog, Serilog... 等等。對于所有的日志類庫,Castle提供了一個通用的接口來實現,我們可以很方便的處理各種特殊的日志庫,而且當業務需要的時候,很容易替換日志組件。

譯者注釋:Castle是什么:Castle是針對.NET平臺的一個開源項目,從數據訪問框架ORM到IOC容器,再到WEB層的MVC框架、AOP,基本包括了整個開發過程中的所有東西。ASP.NET Boilerplate的ioc容器就是通過Castle實現的。

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

獲取日志記錄器logger
不管你選擇哪一個日志庫組件,通過代碼來進行日志記錄都是一樣的。(這里吐槽, Castle's 通用 ILogger 接口實在太牛逼了)。

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

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

接下來我們看一下 ASP.NET Boilerplate是怎么實現日志記錄功能的吧:

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赞皇县| 宁国市| 库伦旗| 仁布县| 揭东县| 格尔木市| 昌邑市| 吉首市| 富源县| 紫阳县| 衢州市| 镇雄县| 开阳县| 深水埗区| 安新县| 溧阳市| 库尔勒市| 垦利县| 宜兰市| 讷河市| 隆德县| 武义县| 昌黎县| 麻城市| 新和县| 句容市| 萨嘎县| 丘北县| 屯昌县| 东乡族自治县| 江陵县| 广州市| 洪泽县| 和平区| 麻阳| 辉南县| 花莲县| 伊金霍洛旗| 交城县| 瑞安市| 利川市|