c# 如何建立程序日志系统

 一个好的软件日志系统的重要性:

     A.在软件开发过程中,为了方便调试,我们经常要输出某些日志,

     B.在单线程的时候,还可以直接看Output窗口,但是多线程就要经常写入日志了。

     C.如果没有日志系统,在程序发布之后,出现问题了,就很难定位错误所在。

     ......

    所以,在一个好的软件,一个好的程序,都会有自己的日志系统。日志可以是写入Txt文件,可以是写入Event Log,可以写入数据库,可以在命令行窗口输出......形式格言。那么如何建立一个日志系统呢?

    借助C#的Trace类,我们可以很容易的完成此功能,假如不用C#,而用C++或者其他没有完好日志系统的语言,可以采用开源库,或者自己按照C#Trace的设计思想,完成一个简单的日志系统。

    好了,先来看C#的Trace类如何使用吧。看代码

  1. Stream sLogFile = File.Create("Log.txt"); Trace.AutoFlush = true; ; Trace.Listeners.Add(new TextWriterTraceListener(sLogFile)); Trace.Listeners.Add(new EventLogTraceListener("myEventLogSource")); Trace.Listeners.Add(new XmlWriterTraceListener(File.Create("Log.xml"))); Trace.WriteLine("haha"); Trace.WriteLine("LogText"); Trace.Flush();  
 Stream sLogFile = File.Create("Log.txt"); Trace.AutoFlush = true; ; Trace.Listeners.Add(new TextWriterTraceListener(sLogFile)); Trace.Listeners.Add(new EventLogTraceListener("myEventLogSource")); Trace.Listeners.Add(new XmlWriterTraceListener(File.Create("Log.xml"))); Trace.WriteLine("haha"); Trace.WriteLine("LogText"); Trace.Flush();
   上面的示例代码只是加入了Txt文件,Xml文件,EvengLog的Listerners,然后以后调用都是直接用Trace.Write()之类的方法就可以了。

   假如我们需要将日志写入数据库,那么我们需要从TraceListerner类派生出一个新的类,重载其中的Write(),WriteLine()方法.

   通过使用C#的Trace类,我们可以自己用C++建立一个简单的Log类,其简单类图如下:

  该图只是列出了最主要的类,接口,函数。

  我们可以想象Log类AddListerner是维护了一个Listerner的列表,然后在Write方法里遍历Listerner,调用其Write方法。

  这样,我们可以很方便的在各种日志输入方法之间转换。假如开发后期,或者维护阶段,需要实现其他的日志输出方法,不用到处找分布在代码中的日志的Write方法,只需要修改Listerner就OK了。

 

其他相关文章:

Net下几种日志管理方法(C# 将Diagnostics.Trace 调试输出 保存到txt)

Diagnostics.Trace 保存txt 

c#如何使用 Debug 和 Trace 类 
.NET中Trace类和Debug类的应用举例


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值