log4net Application Insights - 部署时未收到所有日志

问题描述 投票:0回答:1

我正在使用 log4net 将数据记录到 Windows 服务的应用程序洞察中。为此,我有以下软件包:

  • log4net 2.0.12
  • Microsoft.ApplicationInsights.Log4NetAppender 2.22.0

我已经像这样设置了记录器:

private ILog _logger = LogManager.GetLogger(typeof(MyServiceClass));

设置为使用 log4net.config 文件,如下所示:

string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
XmlConfigurator.Configure(new FileInfo(Path.Combine(assemblyFolder, "log4net.config")));

出于测试目的,当服务启动时,我将在不同级别发送一些消息。

_logger.Debug("This is debug message");
_logger.Info("This is info message");
_logger.Warn("This is warning message");
_logger.Error("This is error message");

现在,当我通过 Visual Studio 调试运行我的应用程序时,它工作得非常好,并且所有数据都按照下面的屏幕截图进行记录。

我遇到的问题是,当我安装服务并运行它时,我收到的唯一消息是异常,没有任何跟踪消息,如下面的屏幕截图所示。

到目前为止我做了什么?

  1. 验证所有依赖项和配置文件是否正确(比较安装目录和调试目录 - 一切都是相同的)

  2. 启用了log4net内部调试,没有提到任何失败。

接下来我可以尝试什么?可能是什么原因造成的?非常感谢任何建议。

我的 log4net 配置中的附加程序如下,除了更新的连接字符串之外,ApplicationInsights.config 文件是 NuGet 包附带的默认文件。

<appender name="aiAppender" type="Microsoft.ApplicationInsights.Log4NetAppender.ApplicationInsightsAppender, Microsoft.ApplicationInsights.Log4NetAppender">
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level: %newline %message %newline %newline"/>
    </layout>
</appender>
log4net azure-application-insights log4net-appender
1个回答
0
投票

好吧,以真正的软件工程师的方式,我在提出问题后就找到了解决方案。

如果将来有人来这里,我会发布答案。

问题是日志没有被刷新,因此没有发送。

我在服务的

OnStop()
方法以及
catch
中的
OnStart()
块中添加了以下内容,现在所有日志都可见。

LogManager.Flush(TimeSpan.FromSeconds(3).Milliseconds);
© www.soinside.com 2019 - 2024. All rights reserved.