【发布时间】:2020-02-08 20:50:01
【问题描述】:
我希望我的应用程序能够记录到文件中,因此我开始寻找比默认的 .NET Core 2.2 记录框架更多的东西。我看到 Serilog 可能会完成这项工作。但是,我找不到任何关于如何使用依赖注入在 .NET Core 控制台应用程序中设置 Serilog 的文档。我看到的只是 ASP.NET 材料,这可能不是我需要的。
我自己开始做。我安装了(Nuget):
- Serilog
- Serilog.Extensions.Logging
- Serilog.Sinks.File
- Serilog.Sinks.Console(将 Serilog 用于我的所有日志记录)
我为ServiceCollection创建了一个扩展
public static void AddLogging(this IServiceCollection services, Microsoft.Extensions.Logging.LogLevel logLevel)
{
var serilogLogger = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("log.txt")
.CreateLogger();
services.AddLogging(builder =>
{
builder.SetMinimumLevel(logLevel);
builder.AddSerilog(logger: serilogLogger, dispose: true);
});
}
但是,日志记录有效:
- 日志级别不是我设置的。似乎 serilog 正在使用 INFO 级别,虽然我想要调试。为什么我的设置不被尊重?毕竟我还在用 NET Core 的日志框架,所以我用它来设置日志级别
- 我真的正确地进行了这个设置吗?我不确定
dispose是否应该是true。通常,我希望 NET Core 的依赖注入框架来处理服务。
【问题讨论】:
标签: c# logging .net-core serilog