我正在编写一个自定义的跟踪程序,以便将跟踪消息写入添加轮换的文件(例如,每天更改文件名)。
在Flush方法的覆盖中,我在底层StreamWriter上调用了Flush,但是如果我在应用程序配置中设置了autoflush='false',则在应用程序终止时不会调用Flush。
当应用程序退出时,最终确定自定义跟踪侦听器的正确方法是什么?
编辑:我重写了Dispose(bool disposing)方法,因为TraceListener基类已经实现了disposable模式,但据我所知,该方法没有被调用。如果我实现了一个显式的析构函数,就会调用析构函数,但在这一点上,我不应该假设流引用仍然有效,对吧?
发布于 2009-05-18 11:28:42
如果您的软件在终止时不调用Trace.Close,则无法确保完成任何刷新。有关更多详细信息,请参阅this article。
发布于 2009-05-18 09:11:54
我建议您在关闭底层StreamWriter之前,在自定义TraceListener类的dispose方法中执行此操作。
发布于 2015-04-18 03:35:38
您应该在自定义跟踪程序中覆盖Close方法,并在那里Flush和Dispose您的底层StreamWriter。
https://stackoverflow.com/questions/876768
复制相似问题