2

我正在编写一个自定义跟踪侦听器来将跟踪消息写入添加轮换的文件(例如每天更改文件名)。
Flush方法的覆盖中,我调用Flush了底层StreamWriter,但如果我autoflush='false'在应用程序配置中设置,Flush则在应用程序终止时不会被调用。

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

编辑:我覆盖了该Dispose(bool disposing)方法,因为基TraceListener类已经实现了一次性模式,但是,据我所知,该方法没有被调用。如果我实现了显式析构函数,就会调用析构函数,但那时我不应该假设流引用仍然有效,对吧?

4

3 回答 3

4

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

于 2009-05-18T11:28:42.290 回答
0

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

于 2009-05-18T09:11:53.550 回答
0

您应该覆盖Close自定义跟踪侦听器中的方法,以及Flush那里Dispose的底层StreamWriter

于 2015-04-17T19:35:38.047 回答