【问题标题】:How do I add cross-cutting information to Microsoft.Extensions.Logging events?如何向 Microsoft.Extensions.Logging 事件添加横切信息?
【发布时间】:2019-04-23 20:23:06
【问题描述】:

我正在尝试设置客户端-服务器应用程序的基本原型,两者都使用 ASP.NET Core 2.0。作为其中的一部分,我将向 Seq 发送诊断信息。在每个应用程序的 Startup 类中,我使用 Seq.Extensions.Logging 并按如下方式配置 Seq 接收器:

public void ConfigureServices(IServiceCollection services)
{
    services.AddLogging(builder =>
    {
        builder
            .SetMinimumLevel(LogLevel.Debug)
            .AddSeq();
    });

这行得通;所有事件都出现在 Seq.但是,无法轻松区分任何特定事件来自哪个应用程序。

在过去,使用 Serilog,我能够向记录器添加属性,这些属性包含在每个事件中。通常,我会将应用程序的名称和运行它的主机添加为一对附加属性:

Log.Logger = new LoggerConfiguration()
    .Enrich.WithMachineName()
    // ...other configuration...
    .CreateLogger();

有没有办法配置 Microsoft 日志记录扩展来做同样的事情?

【问题讨论】:

    标签: c# logging asp.net-core-2.0 seq


    【解决方案1】:

    有两种选择。

    1. 使用内置的Seq 功能。

    对于Seq,它提供API Keys,用于标识客户端应用程序。您可以添加 Applied properties 与您的项目名称一样的特定名称,并通过配置 api 密钥

                services.AddLogging(loggingBuilder =>
            {
                loggingBuilder.AddSeq(Configuration.GetSection("Seq"));
            });
    

    或者

                services.AddLogging(loggingBuilder =>
            {                
                loggingBuilder.AddSeq("http://xxx:5341", apiKey: "K5HzACIfiQxr67CKlvUj");
            });
    
    1. 使用Serilog来配置输出模板如

              var output = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message} {ActionName} {UserName} {NewLine}{Exception} {MachineName}";
      
          Log.Logger = new LoggerConfiguration()
                 .Enrich.FromLogContext() // Populates a 'User' property on every log entry
                 .Enrich.WithProperty("MachineName", Environment.MachineName) //new field
                 .WriteTo.RollingFile("Logs/app-{Date}.txt", outputTemplate: output)
                 .WriteTo.Seq("http://xxx:5341",apiKey: "K5HzACIfiQxr67CKlvUj")
                 .CreateLogger();
          loggerFactory
              //.AddFile("Logs/app-{Date}.txt")
              .AddSerilog();
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-21
      • 2021-10-03
      • 2019-11-16
      • 2019-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      相关资源
      最近更新 更多