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");
        }

代码点击这里下载。

感谢您的阅读。

posted @ 2015-10-10 20:24  Yang-Fei  阅读(9800)  评论(3编辑  收藏  举报