【.net深呼吸】写入日志文件.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

【.net深呼吸】写⼊⽇志⽂件

记录⽇志,⼀⽅⾯可以把⽇志写⼊系统的⽇志存储中,可在事件查看器“”窗⼝中查看;如果不喜欢写到系统的⽇志⽂件中,也可以写到⾃⼰

定义的⽂件中。

其实,⽇志⽂件就是⽂本⽂件,可能有朋友会想到⽤写⼊⽂本⽂件的⽅式来写⽇志。当然,这样做也是可以的,不过,.NET类型库提供了

两个专⽤记录信息的类。

Debug类⼤家都很熟悉,就是可以在VS的输出“”窗⼝写⼊调试信息,另外,有⼀个跟Debug很像的类——Trace。Debug通常只会在调试版

本中使⽤,Trace既可以在调试版本中⽤,也可以⽤于发布(Release)版本。

下⾯以Write⽅法为例,看看Debug类和Trace类的定义有什么不同。

//Debug

[ConditionalAttribute(DEBUG)]

publicstaticvoidWrite(Objectvalue)

//Trace

[ConditionalAttribute(TRACE)]

publicstaticvoidWrite(Objectvalue)

ConditionalAttribute⽤于指定⼀个条件,当条件中给出的条件编译符号存在时才会执⾏。DEBUG和TRACE这两个符号可以在编译的时候指

定,也可以在VS项⽬属性中指定。

接下来我们了解⼀下监听器,它的公共基类是TraceListener,⽽Debug和Trace类都有⼀个Listeners集合,可以添加从TraceListener派⽣的

任意实例。即使我们没有在代码中向Listeners集合添加元素,在应⽤程序运⾏时,它会⾃动添加⼀个默认的监听器,类型为

DefaultTraceListener。

好了,前⾯都是F话,只是给⼤家娱乐的,说到了DefaultTraceListener,就进⼊本⽂主题了,看⼀下,这个类是不是有个属性叫

LogFileName?这就对了,只要把⽇志⽂件的相对路径或绝对路径赋给它就⾏了,⽇志⽂件可以不存在,但⽬录应该是存在的。

来来来,咱们来练习⼀下。

//从Listeners集合中找出默认监听器

DefaultTraceListenerlistener=Trace.Listeners[Default]asDefaultTraceListener;

//指定⽇志⽂件

if(listener!=null)

{

listener.LogFileName=MyApp.log;

}

//测试写⼊

Trace.WriteLine(今天天⽓很好。);

Trace.WriteLine(明天天⽓依旧地热。);

Trace.WriteLine(DateTime.Today.ToLongDateString());

刚刚说过,默认情况下,Listeners集合中会有⼀个DefaultListener监听器,⽽且它的Name属性为“Default”,因此,我们按照名称就可以把

它取出来,然后设置它的LogFileName属性,这⾥我⽤的是相对路径,即创建的⽇志⽂件位于可执⾏⽂件相同的⽬录下。

使⽤Trace类⽽不⽤Debug类,是因为Trace可以在调试版本中⽤,也可以在发布版本中⽤。从运⾏过程来看,跟踪信息既会出现在输出“”窗

⼝中,也会同时写⼊前⾯指定的⽇志⽂件中。

待上⾯⽰例运⾏后,再到程序⽬录下,⽤记事本打开⽇志⽂件,就能看到记录的信息了。

要是你⽐较不喜欢⽤默认的监听器,还可以先把Listeners集合清空,然后Add⼀个别的监听器,除了DefaultTraceListener,还有

TextWriterTraceListener、XmlWriterTraceListener等,它们的继承关系就不说了,⾃⼰看⽂档。

下⾯我们来⽤TextWriterTraceListener来写⼊⽇志⽂件。

staticvoidMain(string[]args)

{

//清空监听器集合

Trace.Listeners.Clear();

//加⼊新的监听器

文档评论(0)

151****0413 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档