- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
尝试为 Serilog 2.8.0(在 .NET 4.6.2 中)设置最低日志级别。日志记录工作正常,但覆盖功能不正常。
这是我的Program.cs:
using System;
using LogTest1.Classes;
using Microsoft.Extensions.Configuration;
using Serilog;
using SomeLib;
namespace LogTest
{
internal class Program
{
private static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", false, true)
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
Log.Verbose("Verbose");
Log.Debug("Debug");
Log.Information("Information");
Log.Warning("Warning");
Log.Error("Error");
Log.Fatal("Fatal");
Console.ReadKey();
}
}
}
和 appsettings.json 文件:
{
"Serilog": {
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": {
"Default": "Warning",
"Override": {
"LogTest": "Information"
}
},
"WriteTo": [
{ "Name": "Console" }
]
}
}
本应查看所有日志,从信息开始,但只从警告开始。
最佳答案
您正在覆盖 MinimumLevel
仅用于从名为 LogTest
的 SourceContext
发送的日志消息,因为根据您的配置....
"Override": {
"LogTest": "Information"
}
像您所做的那样对 Log.Information("Information")
的简单调用不会设置源上下文,因此覆盖不适用...您必须创建上下文优先。
var contextLog = Log.ForContext("SourceContext", "LogTest");
contextLog.Information("This shows up because of the override!");
contextLog.Information("... And this too!");
Log.Information("This does **not** show, because SourceContext != 'LogTest'");
您可以阅读更多关于 SourceContext
的信息在文档中: https://github.com/serilog/serilog/wiki/Writing-Log-Events#source-contexts
关于c# - 覆盖 MinimumLevel 在 Serilog 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57414016/
这是我的默认 Serilog 配置 SeriLogLevelSwitch.MinimumLevel = LogEventLevel.Information; Log.Logger = new Logg
有什么方法可以在 serilog 中为每个文件配置一个日志级别? 我知道我可以为每个“MinimumLevel”配置一个文件,但这不是我需要的。 最佳答案 我也有类似的需求。经过一些研究,我在 .ne
有没有办法从 Controller 或中间件中的 Serilog 的当前配置中获取最低日志级别? 最佳答案 虽然有点间接,但您可以使用 IsEnabled逐级检查此级别: Log.IsEnabled(
尝试为 Serilog 2.8.0(在 .NET 4.6.2 中)设置最低日志级别。日志记录工作正常,但覆盖功能不正常。 这是我的Program.cs: using System; using Log
在代码、xml 和 json 中有“全局”覆盖 MinimumLevel 的文档。 . 但是我可以使用 appsettings.json 覆盖特定的接收器吗? ?例如,我想在类 MyClass 的警告
我正在查看 Serilog sample project 中的 appsettings.json ,其中包含以下代码片段: "MinimumLevel": { "Default": "Debug"
我是一名优秀的程序员,十分优秀!