使用通过SON文件配置的Serilog.Sinks. MSSql服务器时,时间戳不是以UTC为单位的.
在执行这项工作的代码中:
columnOptions.TimeStamp.ConvertToUtc = true;
如何在杨森配置文件中执行同样的事情?
以下是完整的当前SON配置文件:
{
"Serilog": {
"MinimumLevel": "Verbose",
"WriteTo": [
{
"Name": "Console",
"Args": {
"restrictedToMinimumLevel": "Debug"
}
},
{
"Name": "File",
"Args": {
"path": "\\Logs\\log.log",
"rollingInterval": "Day",
"restrictedToMinimumLevel": "Error"
}
},
{
"Name": "MSSqlServer",
"Args": {
"restrictedToMinimumLevel": "Debug",
"connectionString": "XXXX",
"sinkOptions": {
"autoCreateSqlTable": true,
"tableName": "Logs"
},
"columnOptionsSection": {
"disableTriggers": true,
"clusteredColumnstoreIndex": false,
// Add an id column
"primaryKey": { "ColumnName": "Id" },
// Add the event in json for searching
"addStandardColumns": [ "LogEvent" ],
// This is the same info as the LogEvnt but in XML.
"removeStandardColumns": [ "Properties" ],
// Add a Process column
"additionalColumns": [
{
"ColumnName": "Process",
"DataType": "varchar",
"DataLength": 255
}
]
}
}
}
],
"Enrich": [ "FromLogContext" ]
}
}
在args.sinkOptions
中添加UseUtcTimestamp
是行不通的.
"Args": {
"connectionString": "XXXX",
"sinkOptions": {
"UseUtcTimestamp": true
}
}