Log4Net - блокировка процесса для файлов - PullRequest
3 голосов
/ 31 мая 2011

Мы используем Log4Net с FileAppender для регистрации ошибок во время процесса. Когда процесс заканчивается, мы хотим отправить файл журнала по электронной почте, но мы не можем этого сделать, так как Log4Net все еще блокирует файл, и мы получаем сообщение о том, что файл используется другим процессом. Есть идеи?

Мы используем конфигурацию, подобную этой:

  <appender name="WarnFileAppender" type="log4net.Appender.FileAppender">
    <file value="d:\for-review-log.txt" />

    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="INFO" />
      <levelMax value="WARN" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    <appendToFile  value="false"></appendToFile>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  </appender>

Ответы [ 2 ]

4 голосов
/ 31 мая 2011

Я предполагаю, что журнал принадлежит какой-либо службе, поэтому журнал будет заблокирован до тех пор, пока служба не будет запущена.

Возможно, вы хотите использовать общую блокировку при чтении файла для отправки.

Или вы можете скопировать файл и отправить копию.

0 голосов
/ 24 декабря 2015

у меня та же проблема.Олсо флеш не работает, и когда я пытаюсь использовать SMTPmailAppender, Олсо, кажется, не работает как-то.но когда я использую свой собственный созданный класс для отправки электронной почты, это работает, только он не добавляет вложение (лог-файл)

...