C# 使用Trace記錄程序日志


在程序開發中,我們通常需要記錄程序運行的狀態,在程序部署后,發生的異常可以記錄在日志中,便於發現程序潛在的問題。在.NET平台,有很多優秀的日志類庫,例如Log4Net。如果程序很小,我們可以自己通過C#的Trace類來實現一個基本的日志記錄功能。下面直接看代碼:

復制代碼
    public class TraceHelper
    {
        private static TraceHelper _traceHelper;

        private TraceHelper()
        {
        }

        public static TraceHelper GetInstance()
        {
            if (_traceHelper == null)
                _traceHelper = new TraceHelper();

            return _traceHelper;
        }

        public void Error(string message, string module)
        {
            Log(message, MessageType.Error, module);
        }

        public void Error(Exception ex, string module)
        {
            Log(ex.StackTrace, MessageType.Error, module);
        }

        public void Warning(string message, string module)
        {
            Log(message, MessageType.Warning, module);
        }

        public void Info(string message, string module)
        {
            Log(message, MessageType.Information, module);
        }

        private void Log(string message, MessageType type, string module)
        {
            Trace.WriteLine(
                string.Format("{0},{1},{2},{3}",
                DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                type.ToString(),
                module,
                message));
        }
    }

    public enum MessageType
    {
       Information = 0,
       Warning = 1,
       Error = 2
    }
}
復制代碼

在App.config文件中添加(也可以在代碼中創建TraceListener):

復制代碼
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <system.diagnostics>
    <trace autoflush="true" indentsize="0">
      <listeners>
        <add name="LogListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="LogConsoleApp.log"/>
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>
復制代碼

使用也很簡單,

        static void Main(string[] args)
        {
            TraceHelper.GetInstance().Info("This is a information message", "Main Function");

            TraceHelper.GetInstance().Error("This is an error message", "Main Function");
        }

代碼點擊這里下載。

感謝您的閱讀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM