Библиотека Entreprise Плоский файл не катится - PullRequest
5 голосов
/ 26 июля 2011

Я пытаюсь вращать файлы журнала, по одному в день недели, и этот файл конфигурации не работает.Если я изменяю его на вращение вместо полуночи в минуту, он записывает только один файл продолжительностью одна минута.Новые файлы не создаются.Есть ли какие-либо известные ошибки в последней версии библиотеки entreprise, которые фокусируются на том, что плоские файлы не работают?Есть ли проблемы с моей текущей конфигурацией?Спасибо!

<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 Ответ

6 голосов
/ 03 августа 2011

Мне удалось воспроизвести ваш пример.

Похоже, ваша проблема в шаблоне отметки времени. Вы используете двоеточие (:) в качестве разделителя для минут и секунд; когда временная метка соединяется с именем файла, это имя не принимается, потому что двоеточие является зарезервированным символом. Вы не видите ошибку, так как ваш специальный источник «ошибок» также настроен на использование прослушивателя трассировки Rolling Flat File.

Замените двоеточие пробелом, тире, подчеркиванием или любым другим символом, допустимым для имени файла, и все будет работать. Также рассмотрите возможность настройки отдельного прослушивателя для категории ошибок.

Кроме того, поскольку вы выбрали rollFileExistsBehavior = "Increment", а не "Overwrite", он добавит суффикс .1 к каждому файлу. Суффикс не будет увеличиваться, поскольку вы собираетесь получать новый файл каждую секунду. Вы можете удалить ss из шаблона времени или изменить rollFileExistsBehavior.

...