如何将 failureSink 添加到 elasticsearchSink

问题描述 投票:0回答:1

我从 appSettings.json 添加 FileSink 作为 failureSink 到 ElasticsearchSink。但是“无法创建类型为‘Serilog.Core.ILogEventSink’的实例,因为它要么是抽象的,要么是接口。”我得到一个错误。我该如何解决?

"Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.Elasticsearch"],
    "MinimumLevel": {
        "Default": "Error",
        "Override": {
            "Microsoft.Hosting.Lifetime": "Information",
            "Microsoft.AspNetCore": "Warning",
            "Microsoft": "Error",
            "System": "Error",
            "Quartz": "Error",
            "GraphQL": "Warning",
            "Hateoas": "Warning",
            "MassTransit": "Information"
        }
    },
    "WriteTo": [
        {
            "Name": "Elasticsearch",
            "Args": {
                "nodeUris": "http://17.172.25.115:9200",
                "indexFormat": "logstash",
                "templateName": "logstash-template",
                "emitEventFailure":  "WriteToFailureSink, WriteToSelfLog, RaiseCallback",
                "failureSink": {
                    "type": "Serilog.Sinks.File.FileSink, Serilog.Sinks.File",
                    "path": "failures.txt",
                    "fileSizeLimitBytes":  null 
                }
            }
        },
        {
            "Name": "Console",
            "Args": {
                "theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console",
                "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} <s:{SourceContext}>{NewLine}{Exception}"
            }
        }
    ],
    "Enrich": [ "FromLogContext" ],
    "Properties": {
        "ApplicationName": "AselsanSatComPAMAStatic"
    }
},
c# .net-6.0 serilog serilog-sinks-file serilog-sinks-elasticsearch
1个回答
0
投票

在创建 FileSink 实例之前,我们需要配置 FileSink 中的一些强制性设置。您可以设置如下内容,它应该可以工作。

  "failureSink": {
    "type": "Serilog.Sinks.File.FileSink, Serilog.Sinks.File",
    "path": "failures.txt",
    "fileSizeLimitBytes": 1234567,
    "rollingInterval": "Day",
    "textFormatter": "Serilog.Formatting.Json.JsonFormatter"
  }
© www.soinside.com 2019 - 2024. All rights reserved.