【问题标题】:Serilog Correlate Log Messages package not compatible with asp.net coreSerilog Correlate Log Messages 包与 asp.net 核心不兼容
【发布时间】:2021-04-07 11:19:03
【问题描述】:

我正在使用包“SerilogWeb.Classic”来关联日志消息,但该包与 asp.net 核心不兼容,请您指导我一个替代包,我也在寻找 Serilog 指标,可以你也请指导我那个包裹

var log = new LoggerConfiguration()
    .WriteTo.Console()
    .Enrich.WithHttpRequestId()  // coming from SerilogWeb.Classic lib
    .Enrich.WithUserName()
    .CreateLogger();

【问题讨论】:

    标签: c# elasticsearch serilog


    【解决方案1】:

    您可以使用 .net core Microsoft.Logging 的默认日志系统并在启动时配置 serilog,为此您可以使用包 SerilogSerilog.AspNetCore 以及 sinks 包在某处写入,在您的要写入elasticsearch,您需要Serilog.Sinks.Elasticsearch。 你需要配置你的 Program.cs 来配置 serilog,here 一个完整的例子。但基本上你需要添加:

    Log.Logger = new LoggerConfiguration()
                .Enrich.FromLogContext()
                .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(configuration["ElasticConfiguration:Uri"]))
                {
                    AutoRegisterTemplate = true,
                    IndexFormat = $"{Assembly.GetExecutingAssembly().GetName().Name.ToLower()}-{DateTime.UtcNow:yyyy-MM}"
                })
                .Enrich.WithProperty("Environment", environment)
                .ReadFrom.Configuration(configuration)
                .CreateLogger();
    

    然后在您的构建器中添加 .UseSerilog()。

    【讨论】:

    • 谢谢,但我的问题是关于来自 SerilogWeb.Classic 库的“.Enrich.WithHttpRequestId()”,这在 asp.net 核心中不可用
    猜你喜欢
    • 2020-07-03
    • 2013-10-09
    • 2017-01-05
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多