用TextWriterTraceListener实现建议log文件记录

log4net之类3方组件确实很方便,但是想写个小小的demo之类的程序,有点用不起啊。

微软自带的TraceListener要实现一个简易的日志帮助类还是很简单的,直接上代码,自己备用,也希望对同样烦恼的哥们有用:

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Diagnostics;



namespace TestExpressionLambda

{

    public class Logger

    {

        /// <summary>

        /// 默认路径

        /// </summary>

        public static readonly string RootPath = AppDomain.CurrentDomain.BaseDirectory + "log";



        /// <summary>

        /// 默认文件名格式

        /// </summary>

        public static readonly string FileFormat = DateTime.Now.ToString("yyyy-MM-dd") + ".log";



        /// <summary>

        /// 默认Trace监听

        /// </summary>

        public static TextWriterTraceListener traceListener;



        /// <summary>

        /// 静态实例

        /// </summary>

        private static readonly Logger instance = new Logger();

        static Logger()

        {

            if (!Directory.Exists(RootPath))

            {

                Directory.CreateDirectory(RootPath);

            }



            string logFile = RootPath.TrimEnd('\\') + "\\" + FileFormat;

            //if (!File.Exists(logFile))

            //{

            //    File.Create(logFile);

            //}

            //这里不用create文件,TextWriterTraceListener会自动创建了,谢谢楼下的哥们



            Trace.AutoFlush = true;

            traceListener = new TextWriterTraceListener(logFile);

            Trace.Listeners.Add(traceListener);

        }



        /// <summary>

        /// log输出
     /// 当然这里可以自己随便扩充 /// </summary> /// <param name="msg"></param> public static void Log(string msg) { Trace.WriteLine(msg); } } }

 

你可能感兴趣的:(listener)