我已经使用.NetCore连接了Serilog,我正在使用MSSQLServer接收器。我可以使用当前设置登录数据库,但似乎只显示一个日志级别。
配置:
var logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.MSSqlServer(mssql.ConnectionString, mssql.TableName, autoCreateSqlTable: true)
.CreateLogger();
记录代码:
Log.Information("Information Log");
try
{
var numerator = 10;
var denominator = 0;
var num = numerator / denominator;
}
catch (Exception ex)
{
Log.Error(ex, "Divided by Zero error");
}
即使设置了最低日志级别,默认设置也会记录信息但不记录错误。
如何更改此设置以便我可以拥有真正的最低日志级别,以将该级别以上的所有内容记录到数据库
答案 0 :(得分:1)
看起来你使用了错误的记录器。 .NET Core Logging提供了extension methods,如LogInformation
,LogError
等(应用于ILogger.Log
的包装器),应该使用:
var logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.MSSqlServer(mssql.ConnectionString, mssql.TableName, autoCreateSqlTable: true)
.CreateLogger();
logger.LogInformation("Information Log");
...
logger.LogError(ex, "Divided by Zero error");