gpt4 book ai didi

serilog - serilog.settings.appsettings 和文件滚动间隔的问题

转载 作者:行者123 更新时间:2023-12-02 16:02:32 25 4
gpt4 key购买 nike

我正在使用 SeriLog 登录基于 IdentityServer3 的身份验证服务。我刚刚将 serilog.sinks.literate 插件替换为 serilog.sinks.file 插件,以获得文件插件提供的滚动文件功能。当我在 Startup 中使用以下配置代码使用文件插件时: cs,它按我的预期工作。 (我仅使用 RolloverInterval.Minute 进行测试。部署代码时我将切换到 RolloverInterval.Day。)

Log.Logger = new LoggerConfiguration()
.WriteTo.File("E:\\Site\\AuthSvc\\Trace.log", rollingInterval: RollingInterval.Minute, retainedFileCountLimit: 10)
.CreateLogger();

正如我所说,这按预期工作,每分钟创建一个新文件。

现在我尝试使用 serilog.settings.appsettings 插件来管理 appSettings 中的所有配置,而不是在代码中。所以我将上面的代码改为:

Log.Logger = new LoggerConfiguration()
.ReadFrom.AppSettings()
.CreateLogger();

我在 web.config appSettings 中添加了以下内容:

<add key="serilog:minimum-level" value="Debug"/>
<add key="serilog:using:File" value="Serilog.Sinks.File"/>
<add key="serilog:write-to:File.path" value="E:\Site\AuthSvc\Trace.log"/>
<add key="serilog:write-to:File.rollingInterval" value="RollingInterval.Minute"/>
<add key="serilog:write-to:File.retainedFileCountLimit" value="10"/>

当我使用上述配置运行服务时,收到错误消息“未找到请求的值“RollingInterval.Minute”。”任何 RollingInterval 值都会发生类似的错误。

如果我删除最后两个 appSettings,它就可以正常工作。我是否做错了什么,或者 appSettings 插件是否不支持文件接收器插件的滚动文件功能?

最佳答案

我不确定这是否有记录(我会检查),但是当通过 Serilog.Settings.AppSettings 设置枚举值时,您只指定枚举成员名称,而不指定名称枚举的。

例如而不是

<add key="serilog:write-to:File.rollingInterval" value="RollingInterval.Minute"/>

使用

<add key="serilog:write-to:File.rollingInterval" value="Minute"/>

关于serilog - serilog.settings.appsettings 和文件滚动间隔的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52707988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com