在 Serilogs Elasticsearch Sink 中使用 IndexDecider
Using IndexDecider in Serilogs Elasticsearch Sink
我正在尝试使用自定义 indexdecider 在 运行 时间为我的 serilog elasticsearch 接收器设置索引名称。 (https://github.com/serilog/serilog-sinks-elasticsearch)
无论我用于索引决策器的哪个函数都会被忽略,索引名称默认为 logstash-yyyy-mm-dd 除非我给它另一个索引名称模式。我需要它来使用索引决策器功能。
var esConfig = new ElasticsearchSinkOptions(new Uri(elasticSearchLogServer))
{
BufferBaseFilename = Path.Combine(logPath, bufferfilename),
IndexDecider = (@event, offset) =>
{
var indexNumber = Math.Ceiling((double)offset.Day / 8);
var indexName = string.Format("{0}-{1}-{2}-{3:yyyy.MM}-{4}", "logbase", environment, shortAppname, offset, indexNumber);
return indexName;
}
};
var loggerConfiguration = loggerSinkConfiguration.Elasticsearch(esConfig);
这是 2.0.38 之前版本中的错误
只需将 serilog-sinks-elasticsearch 更新到 2.0.38 以上的版本即可。
我正在尝试使用自定义 indexdecider 在 运行 时间为我的 serilog elasticsearch 接收器设置索引名称。 (https://github.com/serilog/serilog-sinks-elasticsearch)
无论我用于索引决策器的哪个函数都会被忽略,索引名称默认为 logstash-yyyy-mm-dd 除非我给它另一个索引名称模式。我需要它来使用索引决策器功能。
var esConfig = new ElasticsearchSinkOptions(new Uri(elasticSearchLogServer))
{
BufferBaseFilename = Path.Combine(logPath, bufferfilename),
IndexDecider = (@event, offset) =>
{
var indexNumber = Math.Ceiling((double)offset.Day / 8);
var indexName = string.Format("{0}-{1}-{2}-{3:yyyy.MM}-{4}", "logbase", environment, shortAppname, offset, indexNumber);
return indexName;
}
};
var loggerConfiguration = loggerSinkConfiguration.Elasticsearch(esConfig);
这是 2.0.38 之前版本中的错误
只需将 serilog-sinks-elasticsearch 更新到 2.0.38 以上的版本即可。