APM Serilog Enricher
editAPM Serilog Enricher
editThis enricher adds the transaction id and trace id to every Serilog log message that is created during a transaction.
Installation
editAdd a reference to the Elastic.Apm.SerilogEnricher package:
<PackageReference Include="Elastic.Apm.SerilogEnricher" Version="8.6.0" />
Usage
editvar logger = new LoggerConfiguration() .Enrich.WithElasticApmCorrelationInfo() .WriteTo.Console(outputTemplate: "[{ElasticApmTraceId} {ElasticApmTransactionId} {ElasticApmSpanId} {Message:lj} {NewLine}{Exception}") .CreateLogger();
Properties
editIn the code snippet above Enrich.WithElasticApmCorrelationInfo()
enables the enricher from this project,
which will set 3 properties for log lines that are created during a transaction:
-
ElasticApmTraceId
-
ElasticApmTransactionId
-
ElasticApmSpanId
These two properties are printed to the Console using the outputTemplate
parameter, of course they can
be used with any sink, you could consider using a filesystem sink and
Elastic Filebeat for durable and reliable ingestion.
This enricher is also compatible with the
Elastic.CommonSchema.Serilog package.
Prerequisite
editThe prerequisite for this to work is a configured Elastic APM Agent. If the agent is not configured the enricher won’t add anything to the logs.