首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Serilog ReadFrom配置

Serilog ReadFrom配置
EN

Stack Overflow用户
提问于 2018-08-31 13:04:55
回答 3查看 23.9K关注 0票数 13

我正在尝试使用appsettings.json预发布Serilog.Settings.Configuration包从NuGet加载我的Serilog配置。但是,当我使用Configuration.GetSection加载它时,该值将继续返回为null。

下面是我的Program.cs文件中的内容:

代码语言:javascript
复制
    return WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .ConfigureLogging(
        (hostingContext, loggingBuilder) =>
        {
            loggingBuilder.ClearProviders();
            loggingBuilder.AddSerilog(
                new LoggerConfiguration()
                    .ReadFrom.ConfigurationSection(hostingContext.Configuration.GetSection("Serilog"))
                    .CreateLogger()
            );
        }
    );

下面是我的appsettings.json文件中的内容:

代码语言:javascript
复制
    {
    "Serilog": {
        "Using": [ "Serilog.Sinks.MSSqlServer" ],
        "MinimumLevel": {
            "Default": "Verbose",
            "Override": {
                "Microsoft": "Verbose",
                "System": "Verbose",
                "Microsoft.AspNetCore.Authentication": "Verbose"
            }
        },
        "WriteTo": [
            {
                "Name": "MSSqlServer",
                "Args": {
                    "connectionString": "*my_connectionString*",
                    "tableName": "ErrorLog"
                }
            }
        ]
    }}

安装的NuGet包:

  • Microsoft.AspNetCore.App v2.1.1
  • Serilog v2.7.1
  • Serilog.AspNetCore v2.1.1
  • Serilog.Extensions.Logging v2.0.2
  • Serilog.Settings.Configuration v3.0.0-dev-00119
  • Serilog.Sinks.MSSqlServer v5.1.2
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-31 14:17:30

我这样配置它:

代码语言:javascript
复制
return WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration
                .ReadFrom.Configuration(hostingContext.Configuration))
            .Build();

默认情况下,Serilog在配置中查找Serilog部分

票数 23
EN

Stack Overflow用户

发布于 2019-05-20 12:11:35

我是这样配置的

代码语言:javascript
复制
public static void Main(string[] args)
{
    var _config = new ConfigurationBuilder()
                .AddJsonFile("loggerconfig.json") //mantained separate config file
                .Build();

    Log.Logger = new LoggerConfiguration()
                .ReadFrom.Configuration(_config)
                .CreateLogger();

    CreateWebHostBuilder(args).Build().Run();
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseSerilog()
        .UseStartup<Startup>();

根据塞里罗格的说法,这是更好的方法。

票数 9
EN

Stack Overflow用户

发布于 2020-09-28 17:25:12

下面是我如何从logging.json中读到的:

代码语言:javascript
复制
            var builder = new ConfigurationBuilder()
                .AddJsonFile(path: "logging.json", optional: false, reloadOnChange: true);

            var config = builder.Build();
            Log.Logger = new LoggerConfiguration()
                        .Enrich.With(new EventBusLogEnricher())
                        .ReadFrom.Configuration(config)
                        .CreateLogger();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52116114

复制
相关文章

相似问题

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