Serilog:写入自定义字段而不弄脏 "message" 字段(mssql 服务器)

Serilog: writing to custom fields without dirtying up the "message" field (mssql server)

我在 sql 服务器日志记录中添加了一堆列,效果很好。但有一件事是,它使我的 "message" 字段因所有自定义字段信息而变脏,例如 BoardProcess 都是我日志中的自定义字段 table

我有以下

_logger.LogInformation("Record count {RecordCount}, Board = {Board}, Process = {Process}", 20, boardName, processName);

我希望消息部分说 "Record count 20" 而不要将其余部分包含在消息中,因为它们将转到自己的字段。

ILogger 上的 ForContext 扩展可以做到这一点:-

Log.ForContext("Board",boardName)
   .ForContext("Process",processName)
   .Information("Record count {RecordCount}", 20)

可以使用 Enrich.FromLogContext / LogContext.PushProperty mechanisms

交替输入此类属性