TextWriterTraceListener和带有GUID的跟踪文件名

Kot*_*tan 16 .net guid trace-listener

我在我的应用程序中使用TextWriterTraceListener(System.Diagnostics)来跟踪异常等几件事情......

应用程序在终端服务器上运行,如果有许多用户同时使用它,则侦听器开始在文件名中创建许多带有随机GUID的跟踪文件.

是否存在避免此行为的可能性或变通方法?

Rob*_*Rob 15

我刚刚看了一下TextWriterTraceListener的文档,并且有关于页面下方1/3的说明

如果尝试写入正在使用或不可用的文件,则文件名将自动以GUID作为前缀

所以,这似乎是设计上的.如果文件确实不可用,那么使用当前实现无法完成任何操作.您可以尝试做的是编写TextWriterTraceListener的自定义实现,该实现会覆盖相关的Write/WriteLine方法,以便输出转到每个用户的文件,其名称更适合您的需要.

如果您希望从终端服务器上的所有用户进行所有日志记录转到单个文件,那么您几乎肯定需要运行"拥有"该文件并同步写入的某种"第三方"进程它,例如随后由自定义TextWriterTraceListener调用的Windows服务

  • 这并不能解释我所处的情况,使用单个应用程序池,运行单个工作进程,写入指定的文件名,并且*仍然* 向多个以 guid 命名的重复日志文件发送垃圾邮件。不能有其他进程试图访问该文件,因为只有一个进程被配置为使用它。 (3认同)