Как использовать logAnet FileAppender в режиме моно при запуске в качестве фонового процесса? - PullRequest
7 голосов
/ 13 апреля 2011

У меня проблемы с использованием log4net FileAppender с моно. Если я вызываю процессы в фоновом режиме (т.е. mono MyApp.exe &), процесс приостанавливается через короткий промежуток времени. Если я запускаю процесс на переднем плане, регистратор работает правильно.

С другой стороны, если я использую ConsoleAppender и перенаправляю его (т.е. mono MyApp.exe > debug.log &), все в порядке.

Вот моя конфигурация для приложения:

<appender name="debug-log" type="log4net.Appender.FileAppender">
  <file value="debug.log" />
  <appendToFile value="false" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-8timestamp [%thread] %-5level %logger - %message%newline" />
  </layout>
</appender>

<appender name="console" type="log4net.Appender.ConsoleAppender">
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-8timestamp [%thread] %-5level %logger - %message%newline" />
  </layout>
</appender>

<root>
  <level value="DEBUG" />
  <appender-ref ref="debug-log" />
</root>

Я использую моно-версию сборки log4net.

EDIT

Моно версия: 2.10.1

Я только что заметил другое интересное поведение ... Я могу использовать FileAppender для записи в журнал отладки, пока я перенаправляю stdout куда угодно. Например, если я начну свой процесс, используя следующее:

mono MyApp.exe > /dev/null &

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...