APM Serilog 增强器

编辑

此增强器会将事务 ID 和跟踪 ID 添加到在事务期间创建的每个 Serilog 日志消息中。

安装

编辑

添加对 Elastic.Apm.SerilogEnricher 包的引用

<PackageReference Include="Elastic.Apm.SerilogEnricher" Version="8.6.0" />

用法

编辑
var logger = new LoggerConfiguration()
   .Enrich.WithElasticApmCorrelationInfo()
   .WriteTo.Console(outputTemplate: "[{ElasticApmTraceId} {ElasticApmTransactionId} {ElasticApmSpanId} {Message:lj} {NewLine}{Exception}")
   .CreateLogger();

属性

编辑

在上面的代码片段中,Enrich.WithElasticApmCorrelationInfo() 启用了来自此项目的增强器,它将为在事务期间创建的日志行设置 3 个属性

  • ElasticApmTraceId
  • ElasticApmTransactionId
  • ElasticApmSpanId

这两个属性使用 outputTemplate 参数打印到控制台,当然它们可以与任何接收器一起使用,您可以考虑使用文件系统接收器和 Elastic Filebeat 实现持久且可靠的摄取。此增强器也与 Elastic.CommonSchema.Serilog 包兼容。

先决条件

编辑

要使其正常工作,需要配置一个 Elastic APM 代理。如果未配置代理,则增强器不会向日志添加任何内容。