3

我尝试使用自定义 indexdecider 在运行时为我的 serilog elasticsearch sink 设置索引名称。(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);
4

1 回答 1

0

这是 2.0.38 之前的版本中的错误

只需更新到 2.0.38 之后的 serilog-sinks-elasticsearch 版本即可。

于 2015-08-24T10:45:15.013 回答