[英]Serilog `rollOnFileSizeLimit` doesn't work with configuration file
[英]Overriding MinimumLevel doesn't work in Serilog
嘗試為 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" }
]
}
}
期望看到所有日志,從Information開始,但只從Warning得到。
根據您的配置,您僅針對從名為LogTest
的SourceContext
發送的日志消息覆蓋MinimumLevel
....
"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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.