我在应用程序中使用 TextWriterTraceListener (System.Diagnostics) 来跟踪异常等多项内容,...
应用程序在终端服务器上运行,如果有许多用户同时使用它,则监听器开始创建许多文件名中带有随机 GUID 的跟踪文件。
是否有可能或解决方法来避免这种行为?
最佳答案
我刚刚查看了 TextWriterTraceListener 的文档页面下方 1/3 处有一条注释
If an attempt is made to write to a file that is in use or unavailable, the file name is automatically prefixed by a GUID
所以,这似乎是设计使然。如果该文件确实不可用,那么当前的实现对此无能为力。您可以尝试编写 TextWriterTraceListener 的自定义实现,该实现重写相关的 Write/WriteLine 方法,以便将输出发送到每个用户的文件,并使用更适合您需要的名称。
如果您想要终端服务器上所有用户的所有日志记录都转到单个文件,那么您几乎肯定需要运行某种“拥有”该文件的“第三方”进程,并且同步对其进行写入,例如随后由您的自定义 TextWriterTraceListener 调用的 Windows 服务
关于.net - TextWriterTraceListener 和带有 GUID 的跟踪文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2341110/