3

カスタム 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);
4

1 に答える 1

0

これは、2.0.38 より前のバージョンのバグでした。

2.0.38 より新しいバージョンの serilog-sinks-elasticsearch に更新するだけです。

于 2015-08-24T10:45:15.013 に答える