提问人:Ruslan Kudaybergenov 提问时间:10/26/2023 更新时间:10/26/2023 访问量:33
通过 Elasticsearch 的 Serilog
Serilog via Elasticsearch
问:
我使用 serilog 记录一些数据并将其写入控制台和 elasticsearch。ECS 支持 Geo,Geo 可以嵌套在 Client 和 Host 下。我在官方网站上使用默认的 serilog 格式化程序。So 代码示例
EcsTextFormatterConfiguration ecsConfiguration = new()
{
...
};
EcsTextFormatter formatter = new(ecsConfiguration);
loggerConfiguration
.ReadFrom.Configuration(configuration)
//Some enrichers
//....
.WriteTo.Console(formatter)
.WriteTo.Elasticsearch(
new ElasticsearchSinkOptions(new Uri(elasticUrl))
{
CustomFormatter = formatter
});
当日志像这样时,kibana 中的字段是,但是当像这样使用时,kibana 中的字段是 .当使用一些自定义的结构化日志记录结构(如“{customLable}”)时,它会将其作为“lables.customLable”放入 kibana。这是否意味着所有已知的嵌套字段都将被放入 kibana 中,并且没问题?
_logger.LogInformation("{geo.name}", "Land of Oz")
geo.name
_logger.LogInformation("{client.geo.name}", "Land of Oz")
fields.client.geo.name
fields.*
第二个问题是 - 是否存在针对客户端、Geo、Orchestrator 和此处介绍的其他字段的完整扩充器。还是是时候编写自己的扩充器了,在前后之间有复杂的解决方案?:D。是的,我知道这一点以及来自 nugetorg 的一些有用的扩充器,例如 entityframework,但这还不够。
答: 暂无答案
评论