Я хотел, чтобы мое приложение имело возможность ведения журнала в файл, поэтому я начал искать что-то большее, чем стандартная платформа ведения журналов .NET Core 2.2. Я вижу, что Serilog может справиться с этой задачей. Однако я не могу найти документ о том, как настроить Serilog в консольном приложении .NET Core с помощью внедрения зависимостей. Все, что я вижу, это материалы ASP.NET, а это, вероятно, не то, что мне нужно.
Я начал делать это сам. Я установил (Nuget):
Serilog
Serilog.Extensions.Logging
Serilog.Sinks.File
Serilog.Sinks.Console (чтобы использовать Serilog для всех моих ведение журнала)
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, поэтому использую ее для настройки уровня журнала.
действительно ли я правильно выполняю эту настройку? Я не совсем уверен, должно ли расположение быть правдой. Обычно я хочу, чтобы платформа внедрения зависимостей NET Core позаботилась об удалении сервисов.
Я хотел, чтобы мое приложение имело возможность ведения журнала в файл, поэтому я начал искать что-то большее, чем стандартная платформа ведения журналов .NET Core 2.2. Я вижу, что Serilog может справиться с этой задачей. Однако я не могу найти документ о том, как настроить Serilog в консольном приложении .NET Core с помощью внедрения зависимостей. Все, что я вижу, это материалы ASP.NET, а это, вероятно, не то, что мне нужно.
Я начал делать это сам. Я установил (Nuget):
[list] [*]Serilog [*]Serilog.Extensions.Logging [*]Serilog.Sinks.File [*]Serilog.Sinks.Console (чтобы использовать Serilog для всех моих ведение журнала) [/list]
Я создал расширение для[code]ServiceCollection[/code]
[code] public static void AddLogging(this IServiceCollection services, Microsoft.Extensions.Logging.LogLevel logLevel) { var serilogLogger = new LoggerConfiguration() .WriteTo.Console() .WriteTo.File("log.txt") .CreateLogger();
[list] [*]уровень журнала не тот, который я установил. Кажется, что serilog использует уровень INFO, хотя мне хотелось иметь DEBUG. Почему мои настройки не учитываются? В конце концов, я все еще использую платформу ведения журналов NET Core, поэтому использую ее для настройки уровня журнала. [*]действительно ли я правильно выполняю эту настройку? Я не совсем уверен, должно ли расположение быть правдой. Обычно я хочу, чтобы платформа внедрения зависимостей NET Core позаботилась об удалении сервисов. [/list]