我在使用单声道的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程序集的单特定版本。
修改
单声道版本:2.10.1
我刚注意到另一个有趣的行为......只要我将FileAppender
重定向到任何地方,我就可以使用stdout
写入调试日志。例如,如果我使用以下内容启动我的流程:
mono MyApp.exe > /dev/null &
进程正常执行,写入调试日志。在这种情况下,我只使用调试日志,而不是控制台appender。使用相同的配置,当我删除重定向后,在将少量数据写入调试日志后,该进程将暂停。