NOTICE: this repository is now part of the ECS .NET integration repository
log4net layout to format log events into a JSON representation that adheres to Elastic Common Schema specification.
Specify layout type in appender's configuration:
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="Elastic.CommonSchema.log4net.EcsLayout, Elastic.CommonSchema.log4net" />
</appender>
</log4net>
See sample application for reference.
Apart from mandatory fields, the output contains additional data:
log.origin.file.name
is taken fromLocationInformation
log.origin.file.line
is taken fromLocationInformation
log.origin.function
is taken fromLocationInformation
event.created
is taken from timestampevent.timezone
is equal to local timezonehost.hostname
is taken fromHostName
propertyprocess.thread.id
is taken fromThreadName
if it has numeric valueprocess.thread.name
is taken fromThreadName
if it doesn't have numeric valueservice.name
is taken from entry or calling assemblyservice.version
is taken from entry or calling assemblyerror.message
is taken fromExceptionObject
error.type
is taken fromExceptionObject
error.stacktrace
is taken fromExceptionObject
metadata
is taken from properties
Sample log event output (formatted for readability):
{
"@timestamp": "2022-07-31T03:50:06.3881419+02:00",
"log.level": "INFO",
"message": "Welcome to example!",
"metadata": {
"global_property": "Example"
},
"ecs": {
"version": "1.5.0"
},
"event": {
"timezone": "Central European Time",
"created": "2022-08-01T14:06:28.5121651+02:00"
},
"host": {
"hostname": "DESKTOP-GB7HICV"
},
"log": {
"logger": "Elastic.CommonSchema.log4net.Example.Program",
"original": null,
"origin": {
"file": {
"name": "C:\\Development\\ecs-log4net\\example\\Elastic.CommonSchema.log4net.Example\\Program.cs",
"line": 17
},
"function": "Main"
}
},
"process": {
"thread": {
"id": 1
}
},
"service": {
"name": "Elastic.CommonSchema.log4net.Example",
"version": "1.0.0.0"
}
}