Я хотел, чтобы мое приложение имело возможность записи в файл, поэтому я начал искать что-то большее, чем стандартная среда ведения журналов .NET Core 2.2. Я вижу, что Serilog может сделать эту работу. Однако я не могу найти документ о том, как настроить Serilog в приложении .NET Core Console с помощью Dependency Injection. Все, что я вижу, это материалы 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, хотя я хотел иметь DEBUG. Почему мои настройки не соблюдаются? В конце концов, я все еще использую инфраструктуру ведения журналов NET Core, поэтому я использую ее для настройки уровня ведения журнала
- , правильно ли я делаю эту настройку? Я не совсем уверен, должно ли
dispose
быть true
. Как правило, я хочу, чтобы среда внедрения зависимостей NET Core позаботилась об удалении услуг.