c# 如何建立程序日志系统
2011-07-14 09:03
302 查看
一个好的软件日志系统的重要性:
A.在软件开发过程中,为了方便调试,我们经常要输出某些日志,
B.在单线程的时候,还可以直接看Output窗口,但是多线程就要经常写入日志了。
C.如果没有日志系统,在程序发布之后,出现问题了,就很难定位错误所在。
......
所以,在一个好的软件,一个好的程序,都会有自己的日志系统。日志可以是写入Txt文件,可以是写入Event Log,可以写入数据库,可以在命令行窗口输出......形式格言。那么如何建立一个日志系统呢?
借助C#的Trace类,我们可以很容易的完成此功能,假如不用C#,而用C++或者其他没有完好日志系统的语言,可以采用开源库,或者自己按照C#Trace的设计思想,完成一个简单的日志系统。
好了,先来看C#的Trace类如何使用吧。看代码
view plaincopy to clipboardprint?
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();
假如我们需要将日志写入数据库,那么我们需要从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类的应用举例
A.在软件开发过程中,为了方便调试,我们经常要输出某些日志,
B.在单线程的时候,还可以直接看Output窗口,但是多线程就要经常写入日志了。
C.如果没有日志系统,在程序发布之后,出现问题了,就很难定位错误所在。
......
所以,在一个好的软件,一个好的程序,都会有自己的日志系统。日志可以是写入Txt文件,可以是写入Event Log,可以写入数据库,可以在命令行窗口输出......形式格言。那么如何建立一个日志系统呢?
借助C#的Trace类,我们可以很容易的完成此功能,假如不用C#,而用C++或者其他没有完好日志系统的语言,可以采用开源库,或者自己按照C#Trace的设计思想,完成一个简单的日志系统。
好了,先来看C#的Trace类如何使用吧。看代码
view plaincopy to clipboardprint?
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类的应用举例
相关文章推荐
- 如何建立程序日志系统
- 在C#中如何获取系统中所安装的所有软件信息,还有如何打开系统中某个程序
- C#建立了一个windows程序,如何防止多个程序实例运行?
- [C#.net]如何解决安装系统全局钩子程序调试时失败的问题
- C#创建创建文本文件写入读取,可以用来做系统日志或程序操作日志或者错误记录
- C#程序如何实现设置系统WIFI共享
- 如何使程序最小化时出现在系统托盘中(C#)
- C#程序如何实现设置系统WIFI共享
- 《ASP.NET1200例》C# WINFORM程序的三层架构如何建立的。
- C#开发WinForm程序如何实现程序最小化到系统托盘
- C#中如何重启系统并在开机后自动执行当前可执行程序
- c# 超快速建立一个系统服务程序【共12步】
- C#程序如何获得系统权限
- 大话设计模式之一:如何在visual studio 中建立C#程序
- C++,CLR,C#的DLL和EXE的32位程序,如何在64位系统上使用
- C#程序如何实现设置系统WIFI共享
- 【译】建立属于你的个人高效系统——效率专家 Mike Vardy 教你如何设置一个简单的个人高效系统
- 基于Spring框架开发的Web程序,如何动态修改日志级别
- Windows 7系统如何设置允许程序或功能通过防火墙?
- C#程序提示”遇到问题正在关闭“的问题,并且没有日志输出