【发布时间】:2023-03-16 17:57:01
【问题描述】:
使用 Microsoft.Extensions.Logging,让我们做日志初始化 (F#):
let myLogger =
LoggerFactory
.Create(fun builder ->
builder
.AddSimpleConsole()
.SetMinimumLevel(myLevel)
|> ignore)
.CreateLogger()
我们以后如何根据需要更改最低水平?
我正在寻找一些简单的东西:
myLogger.ChangeMinimumLevelTo(newLevel)
【问题讨论】:
-
You can't:
The Logging API doesn't include a scenario to change log levels while an app is running。特定的提供商可能会允许这样做。您现在只使用控制台提供程序,但如果您使用 Serilog,您将能够use dynamic level switches。 -
顺便说一句,您编写的代码看起来像是在尝试模拟 Serilog 和单例 Logger 实例。在 .NET Core 中,
ILogger特定于一个类别。ILogger<T>是一个ILogger,其类别是T类型的名称。您应该只共享 LoggerFactory 并根据需要使用它来创建记录器