У меня проблемы с использованием 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 &
Процесс выполняется нормально, запись в журнал отладки. В этом случае я использую только журнал отладки, а не консольный приложение. При использовании той же конфигурации процесс будет приостановлен после записи небольшого объема данных в журнал отладки, когда я удаляю перенаправление.