首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向Microsoft.Extensions.Logging事件添加横切信息?

如何向Microsoft.Extensions.Logging事件添加横切信息?
EN

Stack Overflow用户
提问于 2018-11-21 17:41:45
回答 1查看 191关注 0票数 1

我正在尝试设置客户端-服务器应用程序的基本原型,两者都使用ASP.NET Core2.0。作为这项工作的一部分,我将诊断信息发送给Seq。在每个应用程序的Startup类中,我使用Seq.Extensions.Logging并配置Seq接收器,如下所示:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddLogging(builder =>
    {
        builder
            .SetMinimumLevel(LogLevel.Debug)
            .AddSeq();
    });

这是可行的;所有的事件都会出现在Seq中。但是,不可能容易地区分任何特定事件来自哪个应用程序。

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

代码语言:javascript
复制
Log.Logger = new LoggerConfiguration()
    .Enrich.WithMachineName()
    // ...other configuration...
    .CreateLogger();

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

EN

回答 1

Stack Overflow用户

发布于 2018-11-22 11:05:52

有两个选项供您选择。

  1. 使用内置Seq功能。

对于Seq,它提供了用于标识客户端应用程序的API Keys。您可以添加具有特定名称的Applied properties,如您的项目名称,并通过以下方式配置API键

代码语言:javascript
复制
            services.AddLogging(loggingBuilder =>
        {
            loggingBuilder.AddSeq(Configuration.GetSection("Seq"));
        });

代码语言:javascript
复制
            services.AddLogging(loggingBuilder =>
        {                
            loggingBuilder.AddSeq("http://xxx:5341", apiKey: "K5HzACIfiQxr67CKlvUj");
        });

  1. 使用Serilog配置输出模板,如

var输出= "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {Level} {Message} {ActionName} {UserName} {NewLine}{Exception} {MachineName}";Log.Logger = LoggerConfiguration() .Enrich.FromLogContext() //在每个日志条目.Enrich.WithProperty("MachineName",Environment.MachineName)上填充'User‘属性//新字段.WriteTo.RollingFile(“Logs/app-{LoggerConfiguration}.txt”,outputTemplate: output) .WriteTo.Seq("http://xxx:5341",apiKey:"K5HzACIfiQxr67CKlvUj") .CreateLogger();loggerFactory //.AddFile("Logs/app-{Date}.txt") .AddSerilog();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53409133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档