程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> .NET 日志系統設計思路及實現代碼

.NET 日志系統設計思路及實現代碼

編輯:ASP.NET基礎

日志很明顯是幫助大家定位到問題的一個很重要的手段,本來是想直接使用的NLog 來做系統的日志工具,哎傷不起,一變態非要說這個有很多不可控制的因素,這裡我給大家講一下我是怎麼實現日志模塊的,歡迎拍磚

總體架構圖

•    在這裡我把日子的等級分為 跟蹤,BUG 和錯誤 3種  定義枚舉如下
復制代碼 代碼如下:
/// <summary>
    /// 日志等級
    /// </summary>
    public enum Loglevel
    {
        Track=1,
        Bug,
        Error
    }

•    這裡考慮日志的模塊的可擴展性 (這裡支持 數據庫 和文件 2種方式)  這裡使用適配器模式來完成本模塊。 這裡給大家來年終福利。貼點代碼
定義一個接口ILogTarget
復制代碼 代碼如下:
public interface ILogTarget
    {
        /// <summary>
        /// 寫入追蹤信息
        /// </summary>
        /// <param name="LogContent"></param>
        void WriteTrack(string LogContent);

        /// <summary>
        /// 寫入BUG信息
        /// </summary>
        /// <param name="LogContent"></param>
        void WriteBug(string LogContent);

        /// <summary>
        /// 寫入錯誤信息
        /// </summary>
        /// <param name="LogContent"></param>
        void WriteError(string LogContent);

    }


•     FileLog ,和DBLog 2個類實現上面的接口 這裡不貼上具體的現實
復制代碼 代碼如下:
/// <summary>
    /// 文件日志實現類
    /// </summary>
    public class FileLog : ILogTarget
    {
        public void WriteTrack(string LogContent)
        {
            throw new NotImplementedException();
        }

        public void WriteBug(string LogContent)
        {
            throw new NotImplementedException();
        }

        public void WriteError(string LogContent)
        {
            throw new NotImplementedException();
        }
    }

復制代碼 代碼如下:
public class DBLog : ILogTarget
    {
        public void WriteTrack(string LogContent)
        {
            throw new NotImplementedException();
        }

        public void WriteBug(string LogContent)
        {
            throw new NotImplementedException();
        }

        public void WriteError(string LogContent)
        {
            throw new NotImplementedException();
        }
    }

復制代碼 代碼如下:
public class SmartLog
    {
        private ILogTarget _adaptee;

        public SmartLog(ILogTarget tragent)
        {
            this._adaptee = tragent;
        }
        public void WriteTrack(string LogContent)
        {
            _adaptee.WriteTrack(LogContent);
        }

        public void WriteBug(string LogContent)
        {
            _adaptee.WriteBug(LogContent);
        }

        public void WriteError(string LogContent)
        {
            _adaptee.WriteError(LogContent);
        }
    }

•   調用方式
復制代碼 代碼如下:
SmartLog log =new SmartLog (new FileLog());

log.WriteTrack("Hello word");

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved