是否可以创建一个前缀任何serilog消息的记录器?

时间:2018-05-23 15:03:30

标签: serilog

是否可以创建一个自动为每条消息添加前缀的记录器?

我通常使用该帐户为每封邮件添加前缀,因为这样可以更容易地阅读它们,如下所示:

user1 - did something
user2 - did another thing

我想创建一个记录器,自动将此前缀添加到该特定记录器的任何消息记录器中。目前我做的事情如下:

var log = Log.ForContext("username", user1);
log.Information("{username} - did something");

我想这样做:

var log = Log.ForContext("username", user1);
log.Information("did something");

并且无需为每条消息添加前缀即可获得相同的结果。

有没有内置的方法来实现这一目标?或者我看错了吗?

1 个答案:

答案 0 :(得分:1)

当您去格式化邮件时,您可以通过参考邮件模板中的字段来完成您的要求,如下所示:

{UserName}{Message}{NewLine}

但实现这一目标的典型方法是使用{Properties}元属性,该属性使得实际消息中未使用的所有值恰好已被富集程序捕获/添加/由您添加{在ForContext

Properties中{1}}
LogEvent

请参阅https://github.com/serilog/serilog/wiki/Formatting-Output