在程序开发中,我们通常需要记录程序运行的状态,在程序部署后,发生的异常可以记录在日志中,便于发现程序潜在的问题。在.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");
        }
代码点击这里下载。
感谢您的阅读。
原文:http://www.cnblogs.com/wangchaoyuana/p/7523624.html