如何解决Application Insights Log4Net Appender - 遥测采样和可靠性
我们目前使用 log4net 和 DB / File appenders 来捕获 log4net 日志记录。在生产环境中,虽然我们大多单独使用 WARN 和更高级别的日志记录,但有时会打开 INFO 级别的日志记录以解决最终用户问题。
这些 appender 是可靠的,我们没有经历过日志丢失的情况,因此我们的支持人员无法解决问题。
我们正在为我们的应用程序设置 Azure 托管,Application Insights 正在通过其标准遥测集合增加很多价值。我们现在正在评估将 log4net 日志重定向到 Application Insights 并逐步使 AI 成为日志聚合器。
MS 发布了 log4net AI appender - https://www.nuget.org/packages/Microsoft.ApplicationInsights.Log4NetAppender
关于采样如何影响日志,我没有找到足够的信息。例如如果一些 INFO 日志丢失了采样,这并不理想,但我们可能仍然可以。如果 WARN、ERROR 或 FATAL 日志丢失,那只会使 AI 对我们的支持使用不可靠,它们只会退回到 DB 或文件中的传统日志。
对自动遥测(如请求、依赖项)进行采样是可以理解的,但是否有一种机制可以确保在 Application Insights 中可靠地提供 log4net 日志?
解决方法
根据this issue,Log4Net appender
的采样方式应与其他遥测采样方式相同。
因此您可以使用代码关闭采样(默认采样为Adaptive sampling)。
例如,如果是 .net 核心应用程序,您可以按照 this doc 使用以下代码:
public void ConfigureServices(IServiceCollection services)
{
// ...
var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
aiOptions.EnableAdaptiveSampling = false;
services.AddApplicationInsightsTelemetry(aiOptions);
//...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。