滚动平面文件日志文件无法正常滚动

时间:2012-01-19 15:25:02

标签: file logging enterprise-library

我正在使用Microsoft Enterprise 5 Logging块。在本地测试时,正确创建所有滚动平面文件,并按预期将数据库记录到本地SQL日志实例。问题是当我将我的应用程序发布到我们拥有的测试环境时。在这里发生了一些奇怪的事情:日志文件是用奇怪的类似GUID的名字创建的。它们最终会滚动,但它很奇怪而且经常这样做。数据库记录也不会发生。我无法在网上找到与此问题相关的任何内容。我怀疑在IIS中设置应用程序池和文件夹时出现身份验证问题但不确定。 有人有这个问题吗? 这是我的配置设置:

<add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        fileName="D:\logs\MobileApps\rolling.log" formatter="Text Formatter"
        rollFileExistsBehavior="Increment" rollInterval="Hour" timeStampPattern="yyyy-MM-dd-hh" />

文件的名称类似于

deb7f413-6cb3-44ac-900e-02883856e82bRolling.log
rolling.2012-01-19-09.log

1 个答案:

答案 0 :(得分:3)

RollingFlatFileListener 基于.NET Framework的 TextWriterTraceListener ,它定义了这种前缀行为:“如果尝试写入一个文件在使用或不可用时,文件名自动以GUID 为前缀。“

您可以定义自己的跟踪侦听器(不保持文件打开)(有关如何编写自定义跟踪侦听器的指导,请参阅set of hands-on labs on EntLib extensibility的实验2),或使用distributor service和在一个地方写入文件;对于后者,您需要设置MSMQ。