![](/img/trans.png)
[英]Specify string array in serilog.settings.configuration and appsettings.json
[英]Trouble getting Serilog to read appsettings.json settings
我的控制台应用程序中有以下代码。
// Build configuration
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(ApplicationInfo.DataPath)
.AddJsonFile("appsettings.json", false, false)
.Build();
// Configure Serilog
string logFormat = "[{Timestamp:yyyy-MM-dd hh:mm:ss tt}][{Level:u3}] {Message:lj}{NewLine}{Exception}";
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.WriteTo.Console(LogEventLevel.Verbose, logFormat)
.WriteTo.File(ApplicationInfo.GetDataFileName("log"), LogEventLevel.Verbose, logFormat)
.CreateLogger();
AppHost = Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureServices((context, services) =>
{
services.AddDbContext<TTApplicationDbContext>(options =>
{
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});
services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));
services.Configure<SftpSettings>(configuration.GetSection("FtpSettings"));
})
.Build();
这似乎奏效了。 但是,当我将以下部分添加到我的appsettings.json文件时,我没有从框架内获得任何详细的日志记录。 我得到的只是我专门登录我的应用程序的日志记录。
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Information",
"System": "Information"
}
}
}
据我所知,Serilog 忽略了这些设置。 我该如何改变呢?
更新:
如果我在appsettings.json中将Default值更改为Debug ,这实际上控制了我自己对LogDebug()
的调用是否显示。 但我不明白为什么微软的日志没有出现。 微软的代码不会使用任何配置的记录器吗?
在配置 DotNet Core App 时,我遇到了同样的问题。 我发现如果我添加了 Nuget Package serilog-extensions-hosting,它也会开始将框架消息输出到日志中。
https://github.com/serilog/serilog-extensions-hosting
我希望这有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.