在Seq.Client.log4Net 6上使用Seq.Client.log4Net (3.1.0)时,我观察到一种奇怪的行为:
只有在调用日志方法之前和之后调用XmlConfigurator.ConfigureAndWatch时,才能登录到Server。似乎只有second会受到影响(控制台和文件日志记录是在没有第二次XmlConfigurator.ConfigureAndWatch调用的情况下执行的!)
登录到Server可以正常工作:
ILog log = LogManager.GetLogger(GetType());
XmlConfigurator.ConfigureAndWatch( new FileInfo(@"\log4net.config"));
log.Info("Entering application.");
log.Warn("Exiting application.");
XmlConfigurator.ConfigureAndWatch(new FileInfo(@"log4net.config")); //why is this required??无Seq日志记录:
ILog log = LogManager.GetLogger(GetType());
XmlConfigurator.ConfigureAndWatch( new FileInfo(@"\log4net.config"));
log.Info("Entering application.");
log.Warn("Exiting application.");log4net.config是:
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
..
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
..
</appender>
<appender name="SeqAppender" type="Seq.Client.Log4Net.SeqAppender, Seq.Client.Log4Net">
<bufferSize value="100" />
<serverUrl value="https://xxx:yy" />
<apiKey value="" />
<parameter>
<parameterName value="Runtime" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=".NET Framework" />
</layout>
</parameter>
<parameter>
<parameterName value="Config" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="ExternalConfig" />
</layout>
</parameter>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="SeqAppender" />
</root>
</log4net>根据文档,一个对ConfigureAndWatch的调用就足够了,所以我非常困惑这里发生了什么。汉克斯什么主意都行!
发布于 2022-11-09 21:51:17
您需要在退出应用程序之前调用LogManager.Shutdown(),以确保将所有事件刷新到Seq。
https://stackoverflow.com/questions/74372696
复制相似问题