Windows Service部署后log4net无法向Application Insights发送全部日志
Windows Service中log4net上报Application Insights仅异常日志生效问题
环境与配置
使用的NuGet包:
- log4net 2.0.12
- Microsoft.ApplicationInsights.Log4NetAppender 2.22.0
日志记录器初始化代码:
private ILog _logger = LogManager.GetLogger(typeof(MyServiceClass));
log4net配置加载代码:
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");
log4net配置中的Appender节点:
<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>
ApplicationInsights.config仅修改了连接字符串,其余为NuGet包默认配置
问题现象
- 在Visual Studio中调试运行时,所有级别的日志(Debug、Info、Warn、Error)均能正常上报至Application Insights
- 将程序安装为Windows Service运行后,仅能收到Error级别的日志,其余Debug、Info、Warn级别的跟踪消息完全缺失
已完成的排查步骤
- 对比安装目录与调试目录的所有依赖项、配置文件,确认内容完全一致,无缺失或错误
- 启用log4net内部调试模式,未捕获到任何失败信息或异常
疑问
可能的原因是什么?下一步可尝试哪些排查操作?
内容的提问来源于stack exchange,提问作者Ryan Thomas
相关产品推荐
相关产品推荐

