gpt4 book ai didi

c# - ASP.NET Core 登录 2 个不同的文件

转载 作者:行者123 更新时间:2023-12-04 00:29:43 25 4
gpt4 key购买 nike

将默认的 ASP.NET 核心日志记录与 Serilog 结合使用时,是否可以将错误写入 errors.log 并将信息写入 information.log

using Microsoft.Extensions.Logging;
using Serilog;

loggerFactory.AddSerilog();
loggerFactory.AddFile(Configuration.GetSection("Logging"));

Appsettings.json:
"Logging": {
"PathFormat": "path-{Date}.log",
"IncludeScopes": false,
"LogLevel": {
"Default": "Information",
"System": "Information",
"Microsoft": "Information"
}
}

我想要一个日志文件,我可以在其中查看已完成的请求以及诸如此类的内容,只是信息日志。和一个用于调试目的的错误日志。如何将不同的内容记录到 2 个文件中?

最佳答案

如果要使用单个 Logger 对象,可以按级别过滤日志类型:

using Serilog;
using Serilog.Events;

Log.Logger = new LoggerConfiguration()
// Restricts logs to: Debug, Information, Warning, Error and Fatal
.MinimumLevel.Debug()
// Logs Information, Warning, Error and Fatal to "info-logs.txt" file
.WriteTo.File(path: "info-logs.txt", restrictedToMinimumLevel: LogEventLevel.Information)
// Logs Error and Fatal to "error-logs.txt" file
.WriteTo.File(path: "error-logs.txt", restrictedToMinimumLevel: LogEventLevel.Error)
.CreateLogger();

Log.Verbose("Loggin Verbose..."); // Won't log, because the Logger "MinimumLevel" is set to Debug
Log.Debug("Loggin Debug..."); // Won't log, because there is no sink that takes Debug
Log.Information("Loggin Information..."); // Logs into "info-logs.txt"
Log.Warning("Loggin Warning..."); // Logs into "info-logs.txt"
Log.Error("Loggin Error..."); // Logs into "info-logs.txt" and "error-logs.txt"
Log.Fatal("Loggin fatal..."); // Logs into "info-logs.txt" and "error-logs.txt"

来自 docs 的日志级别和描述:

enter image description here

关于c# - ASP.NET Core 登录 2 个不同的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53261633/

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