elasticsearch 如何在Elasticsearch中使用Serilog进行日志格式化?
我正在尝试使用serilog.sink.Elasticsearch在Elasticsearch中创建日志。这是我的代码示例
elasticsearch 如何在Elasticsearch中使用Serilog进行日志格式化?,
elasticsearch,logging,formatting,serilog,
elasticsearch,Logging,Formatting,Serilog,我正在尝试使用serilog.sink.Elasticsearch在Elasticsearch中创建日志。这是我的代码示例 static void Main(string[] args) { var loggerConfig = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Elasticsearch(new ElasticsearchSinkOptio
static void Main(string[] args)
{
var loggerConfig = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://localhost:9200"))
{
CustomFormatter = new ElasticsearchJsonFormatter(),
AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,
FailureCallback = e => Console.WriteLine("Unable to submit event " + e.MessageTemplate),
EmitEventFailure = EmitEventFailureHandling.RaiseCallback
});
var logger = loggerConfig.CreateLogger();
Console.WriteLine("Logging..");
logger.Information("{FirstName}, {LastName}", "Janes", "Dean");
}
它产生了弹性搜索的输出,就像这样
{
"_index":"myindex000001",
"_type":"_doc",
"_id":"QClPOnkBVfj3BqXvGYcl",
"_version":1,
"_score":null,
"_source":{
"@timestamp":"2021-05-05T10:15:31.0617265+08:00",
"level":"Information",
"messageTemplate":"{FirstName}, {LastName}",
"message":"\"Janes\", \"Dean\"",
"fields":{
"FirstName":"Janes",
"LastName":"Dean"
}
},
"fields":{
"@timestamp":[
"2021-05-05T02:15:31.061Z"
]
},
"sort":[
1620180931061
]
}
但我需要的是日志如下所示。将FirstName和LastName放在“\u source”节点下而不是“fields”节点下
这一点在Microsoft.Extensions.Logging中是可行的。但当我们迁移到Serilog时,我需要以Serilog的方式实现它。有什么我遗漏的吗?我不应该创建索引映射,因为映射已经就位,并且在从Microsoft.Extensions.logging登录时工作正常。只有当我使用Serilog时才会出现此问题
任何帮助都将不胜感激
{
"_index":"myindex000001",
"_type":"_doc",
"_id":"QClPOnkBVfj3BqXvGYcl",
"_version":1,
"_score":null,
"_source":{
"@timestamp":"2021-05-05T10:15:31.0617265+08:00",
"level":"Information",
"firstName":"Janes",
"lastName":"Dean",
"message":"\"Janes\", \"Dean\""
},
"fields":{
"@timestamp":[
"2021-05-05T02:15:31.061Z"
]
},
"sort":[
1620180931061
]
}