我有以下场景: 1. .NET UI端使用Logging App写入平面文件2.非托管Windows使用专有记录器写入与1相同的文件。
问:是否有一种方法可以使FlatFile TraceListener在记录条目后关闭其文件句柄,以便Windows也可以写入该文件?
谢谢!
更新:我包括了Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Writer.Dispose();,它关闭了流,所以这会起到作用--只是好奇是否有其他方法可以做到这一点。
Update2: Final Notes
P&P建议从多个应用程序写入单个MSMQ。这样您就不需要调用This ()等。
发布于 2009-01-21 23:02:34
我不得不使用log4net来处理这个问题。我根本无法利用日志框架的文件日志记录支持,不得不使用自己的日志附录来捕获共享违规行为。此时,您的选择要么是在内存中缓冲事件,然后将它们写出来,要么是阻塞,直到您能够访问该文件为止。
发布于 2009-01-21 22:49:16
我认为,你的选择是最好的方式来处理它-只是在你做完后处理作家,这应该最后确定和释放所有的资源,作者仍然持有。
另外,我担心这两种处理都试图同时编写,并导致异常,但是about可能为内置的代码提供了一些变通方法。
发布于 2010-08-10 14:34:03
你从哪里得到.Dispose的?我输入EnterpriseLibrary.Logging.Logger.Writer,但.Writer不作为方法或属性,也不输入.Dispose。
谢谢,
TCW
找到它:
Import Microsoft.Practices.EntLib.Common做得很好.
https://stackoverflow.com/questions/370182
复制相似问题