elk serilogFlume故障回调

bkkx9g8r  于 2021-06-09  发布在  ElasticSearch
关注(0)|答案(0)|浏览(230)

我能够成功地将ElasticSearch接收器集成到我的.net应用程序中,现在我正在尝试设置failurecallback选项,但是每次出现错误logevent中的异常都为null,我可以在控制台中看到实际的错误,但我希望能够在我的failure callback函数中捕获此异常,以下是我当前的配置:

myLogger = new LoggerConfiguration()
                .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elasticSearchUrl))
                {
                    AutoRegisterTemplate = true,
                    AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
                    IndexDecider = (@event, dateTimeOffset) =>
                    {
                        //some logic here
                        return $"custom-index";
                    },
                    EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog | EmitEventFailureHandling.RaiseCallback,
                    FailureCallback = HandleElasticError
                })
                .Enrich.WithProperty("Environment", Config.Environment)
                .Destructure.ByTransforming<ExpandoObject>(JsonConvert.SerializeObject)
                .CreateLogger();

这是我的handleelasticerror函数:

private void HandleElasticError(LogEvent e)
        {
            FileLogger.Error(e.Exception, e.MessageTemplate.Text, e.Properties);
        }

当我附加调试器并检查logevent时,exception为null,但是在visual studio的输出窗口中,我可以看到实际的错误:

2020-11-30T20:55:07.7820674Z Caught exception while preforming bulk operation to Elasticsearch: Elasticsearch.Net.ElasticsearchClientException: The underlying connection was closed: An unexpected error occurred on a send.. Call: Status code unknown from: POST /_bulk ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: The handshake failed due to an unexpected packet format.
   at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
   at System.Net.PooledStream.EndWrite(IAsyncResult asyncResult)
   at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---

我不关心这个错误,我知道问题是什么,我只想在我的失败回调函数中捕获这个异常。有什么想法吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题