博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#: 简单的日志管理类(TextWriterTraceListener)
阅读量:5154 次
发布时间:2019-06-13

本文共 2162 字,大约阅读时间需要 7 分钟。

以c#实现轻量级的日志管理,着实简单,置一静态类记之:

///     /// 日志管理    ///     public static class LogHelper    {        //超过3M则清除        const int MAX_LOG_SIZE = 3 * 1024 * 1024;        public static void Init(string fileName)        {            CheckAndCleanLogFile(fileName);            bool firstWrite = !File.Exists(fileName);            var traceListener = new TimeTextWriterTraceListener(fileName);            //TraceOptions.DateTime,在以Trace.TraceError、Trace.TraceWarning等方式输出信息时,全加入日期信息            traceListener.TraceOutputOptions |= TraceOptions.DateTime;            Trace.Listeners.Add(traceListener);            Trace.AutoFlush = true;            //初始日志            if (firstWrite)                Trace.WriteLine(string.Format("OS Version: {0}", Environment.OSVersion.ToString()));            Trace.WriteLine("\r\n" + new string('-', 64));            Trace.WriteLine(string.Format("Program Start: {0} v{1}", Application.ProductName, Application.ProductVersion));        }        private static void CheckAndCleanLogFile(string fileName)        {            if (!File.Exists(fileName))                return;            try            {                var fi = new FileInfo(fileName);                if (fi.Length > MAX_LOG_SIZE)                    File.Delete(fileName);            }            catch            {            }        }        private class TimeTextWriterTraceListener : TextWriterTraceListener        {            public TimeTextWriterTraceListener(string fileName)                : base(fileName)            {            }            public override void WriteLine(string message)            {                if (string.IsNullOrEmpty(message))                    return;                if ((this.TraceOutputOptions & TraceOptions.DateTime) == TraceOptions.DateTime && !message.Contains("--------"))                    base.Write(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ");                base.WriteLine(message);            }        }    }

使用方法:

string logFile = Path.ChangeExtension(Process.GetCurrentProcess().MainModule.FileName, ".log");LogHelper.Init(logPath);

那么,程序中所有Trace.xxx输出的信息,就都会被记录下来。

转载于:https://www.cnblogs.com/crwy/p/10223824.html

你可能感兴趣的文章
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>
校门外的树2 contest 树状数组练习 T4
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
Program exited with code **** 相关解释
查看>>
植物大战僵尸中文年度版
查看>>
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
投标项目的脚本练习2
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>
Caroline--chochukmo
查看>>
算法导论笔记 第8章 线性时间排序
查看>>
利用jquery的contains实现搜索功能
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>