企业库滚动平面文件没有滚动

时间:2011-07-26 14:19:46

标签: c# xml logging enterprise-library

我正在尝试轮换日志文件,每周一天,此配置文件无效。如果我将其更改为旋转而不是午夜到分钟,则仅记录一个持续一分钟的单个文件。没有生成新文件。是否有任何已知的最新版本的企业库的错误,专注于滚动平面文件无法正常工作?我当前的配置有问题吗? 谢谢!

<loggingConfiguration name="" tracingEnabled="true" defaultCategory="General"
    revertImpersonation="false">
    <listeners>
      <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="C:\EMS\logs\MobileMessagingServices.log" footer="" formatter="Text Formatter"
    header="" rollFileExistsBehavior="Increment" rollInterval="Midnight"
    rollSizeKB="100000" timeStampPattern="yyyy-MM-dd hh:mm:ss" maxArchivedFiles="7"
    traceOutputOptions="Timestamp, Callstack" filter="All" />
</listeners>
<formatters>
  <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    template="{timestamp} :: {category} :: {message}" name="Text Formatter" />
</formatters>
<categorySources>
  <add switchValue="All" name="General">
    <listeners>
      <add name="Rolling Flat File Trace Listener" />
    </listeners>
  </add>
</categorySources>
<specialSources>
  <allEvents switchValue="All" name="All Events">
    <listeners>
      <add name="Rolling Flat File Trace Listener" />
    </listeners>
  </allEvents>
  <notProcessed switchValue="All" name="Unprocessed Category">
    <listeners>
      <add name="Rolling Flat File Trace Listener" />
    </listeners>
  </notProcessed>
  <errors switchValue="All" name="Logging Errors &amp; Warnings">
    <listeners>
      <add name="Rolling Flat File Trace Listener" />
    </listeners>
  </errors>
</specialSources>

1 个答案:

答案 0 :(得分:6)

我设法重现了你的例子。

您的问题似乎是时间戳模式。您使用冒号(:)作为分钟和分钟;当时间戳连接到文件名时,该名称不会被接受,因为冒号是保留字符。您没有看到错误,因为您的“错误”特殊源也配置为使用滚动平面文件跟踪侦听器。

用空格,短划线,下划线或任何其他对文件名有效的字符替换冒号,一切都会起作用。另外,请考虑为错误类别配置单独的侦听器。

此外,由于您选择了rollFileExistsBehavior =“Increment”而不是“Overwrite”,因此它会为每个文件添加.1后缀。后缀不会增加,因为您将每秒获取一个新文件。您可能希望从时间模式中删除ss或更改rollFileExistsBehavior。