0

我在 .net 框架中的 web api 中使用 serilog,并在 Web.Config 文件中添加了 serilog 配置,如下所示

 <appSettings>
        <add key="serilog:minimum-level" value="Information" />
        <add key="serilog:using:File" value="Serilog.Sinks.File" />
        <add key="serilog:write-to:File.path" value="C:\api\logs\api_log.log" />
        <add key="serilog:write-to:File.formatter" value="Serilog.Formatting.Json.JsonFormatter, Serilog" />
        <add key="serilog:write-to:File.rollingInterval" value="Day" />
        <add key="serilog:write-to:File.fileSizeLimitBytes" value="5242880" />
        <add key="serilog:write-to:File.rollOnFileSizeLimit" value="true" />
        <add key="serilog:write-to:File.shared" value="true" />
    </appSettings>

我已经在启动文件中注册了记录器,如下所示

private static ILogger ConfigureSerilog()
        {
            IConfigurationRoot configuration = new ConfigurationBuilder()
                                               .Add(new XmlConfigurationProvider())
                                               .Build();

            LoggerConfiguration loggerConfiguration = new LoggerConfiguration().Enrich.With(new SerilogClaimValueEnricher())
                                                                               .Enrich.WithDemystifiedStackTraces()
                                                                               .ReadFrom.Configuration(configuration);

            Logger rootLogger = loggerConfiguration.CreateLogger();
            Log.Logger = rootLogger;

            return rootLogger;
        }

配置对象正在获取我们在 web.config 中给出的所有值,但日志记录不起作用。但是,ReadFrom.Configuration(configuration)如果我使用ReadFrom.AppSettings()日志记录而不是正常工作。但我需要利用 IConfigurationRoot这里。我错过了什么吗?

请不要XmlConfigurationProvider是从 web.config 读取密钥的自定义类

下面是配置的调试模式状态的屏幕截图。

下面是配置的调试模式状态

4

0 回答 0