2008-12-16 19 views
2

我有以下情况: 1. .NET UI端使用日志记录应用程序块写入平面文件 2.非托管Windows服务使用专用记录器写入与1相同的文件。使用日志记录应用程序块写入单个文件的多个客户

问题:是否有一种方法可以使FlatFile TraceListener在记录条目后关闭它的文件句柄,以便Windows服务也可以写入文件?

谢谢!

更新: 我包含Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Writer.Dispose(); ,并关闭流,所以这会做的伎俩 - 只是好奇,如果有另一种方式来做到这一点。

UPDATE2:最后说明

P & P建议从多个应用程序写入到一个单一的MSMQ。这样你就不需要调用Dispose()等等。

回答

0

我认为你的选择是照顾它的最好方法 - 只要在完成之后处置作者,应该完成并释放所有作者仍然拥有的资源。

而且,我很担心这两种处理试图在同一时间写,使其产生异常,但也许在App块已经针对内置了一些解决办法代码。

2

我不得不使用log4net处理这个问题。我根本无法使用日志框架的文件日志支持,并且不得不推出我自己的日志appender来捕获共享冲突。此时,您的选择是缓冲内存中的事件并稍后写出或阻止,直到可以访问文件。

0

你从哪里得到.Dispose from? 我输入EnterpriseLibrary.Logging.Logger.Writer,但是.Writer没有方法或属性,没有.Dispose。

感谢,

TCW

发现:

导入Microsoft.Practices.EntLib.Common的伎俩。

相关问题