Я использую простой ASP.NET
предоставленный регистратор, который я получаю путем внедрения зависимости: Microsoft.Extensions.Logging.ILogger<T>
.На практике динамический тип - Microsoft.Extensions.Logging.Logger<T>
.
. При отлове исключений я пытаюсь зарегистрировать их, используя: _logger.LogError(exception, "message")
, однако печатается только сообщение.
namespace App
{
public class App : IApp
{
private readonly ILogger<App> _logger;
public PomParser(ILogger<App> logger)
=> _logger = logger;
public void DoStuff()
{
try
{
DoStuffUnsafe();
}
catch (Exception ex)
{
_logger.LogError(ex,"Failed to do stuff");
}
}
}
}
Как янастроить ведение журнала:
var host = new HostBuilder().ConfigureLogging(ConfigureLogging)...
...
await host.RunAsync();
private static void ConfigureLogging(HostBuilderContext hostContext, ILoggingBuilder configLogging)
{
configLogging.ClearProviders();
configLogging.AddConfiguration(hostContext.Configuration.GetSection("Logging"));
configLogging.AddFile(
options =>
{
hostContext.Configuration.GetSection("FileLoggingOptions")
.Bind(options);
}
);
configLogging.AddConsoleLogger();
}
appsettings:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"System": "Information",
"Microsoft": "Information"
}
},
"FileLoggingOptions": {
"FileName": "app-",
"LogDirectory": "logs",
"FileSizeLimit": 10485760,
"Extension": "log"
}
}