首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用autoflush='false‘(C#,.net)完成自定义TraceListener

使用autoflush='false‘(C#,.net)完成自定义TraceListener
EN

Stack Overflow用户
提问于 2009-05-18 08:53:03
回答 3查看 2.6K关注 0票数 2

我正在编写一个自定义的跟踪程序,以便将跟踪消息写入添加轮换的文件(例如,每天更改文件名)。

Flush方法的覆盖中,我在底层StreamWriter上调用了Flush,但是如果我在应用程序配置中设置了autoflush='false',则在应用程序终止时不会调用Flush

当应用程序退出时,最终确定自定义跟踪侦听器的正确方法是什么?

编辑:我重写了Dispose(bool disposing)方法,因为TraceListener基类已经实现了disposable模式,但据我所知,该方法没有被调用。如果我实现了一个显式的析构函数,就会调用析构函数,但在这一点上,我不应该假设流引用仍然有效,对吧?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-18 11:28:42

如果您的软件在终止时不调用Trace.Close,则无法确保完成任何刷新。有关更多详细信息,请参阅this article

票数 4
EN

Stack Overflow用户

发布于 2009-05-18 09:11:54

我建议您在关闭底层StreamWriter之前,在自定义TraceListener类的dispose方法中执行此操作。

票数 0
EN

Stack Overflow用户

发布于 2015-04-18 03:35:38

您应该在自定义跟踪程序中覆盖Close方法,并在那里FlushDispose您的底层StreamWriter

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/876768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档