是否可以创建一个自动为每条消息添加前缀的记录器?
我通常使用该帐户为每封邮件添加前缀,因为这样可以更容易地阅读它们,如下所示:
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");
并且无需为每条消息添加前缀即可获得相同的结果。
有没有内置的方法来实现这一目标?或者我看错了吗?
答案 0 :(得分:1)
当您去格式化邮件时,您可以通过参考邮件模板中的字段来完成您的要求,如下所示:
{UserName}{Message}{NewLine}
但实现这一目标的典型方法是使用{Properties}
元属性,该属性使得实际消息中未使用的所有值恰好已被富集程序捕获/添加/由您添加{在ForContext
Properties
中{1}}
LogEvent
请参阅https://github.com/serilog/serilog/wiki/Formatting-Output