在.Net Core应用程序中,我添加了Serilog来将错误记录到SQL数据库中。如果我默认设置所有内容并使用标准列,则一切正常。如果我想扩展以将值写入自定义值,则会遇到问题。
数据库和表是较早创建的,并且日志记录可以正常工作,只是它没有在我的自定义列中写入任何内容。
这是配置。
"WriteTo": [
{
"Name": "MSSqlServer",
"Args": {
"connectionString": "Server=.\\SQLEXPRESS;Database=WebLogging;Trusted_Connection=True;",
"tableName": "Logs",
"autoCreateSqlTable": true,
"columnOptionsSection": {
"removeStandardColumns": [ "Properties" ],
"customColumns": [
{
"ColumnName": "UserName",
"DataType": "varchar",
"DataLength": 50
}
]
}
}
}
]
“属性”列仍用于存储数据,而“用户名”列始终为空。它将自定义属性写入“属性”列。
ILogger,以控制器方法注入。
_logger.LogError("Error from .NET Core {UserName}", "Test");
版本:Serilog.AspNetCore 2.1.1,Serilog.Sinks.MSSqlServer 5.1.2