Можно ли создать регистратор, который префикс любого сообщения serilog? - PullRequest
0 голосов
/ 23 мая 2018

Можно ли создать регистратор, который автоматически префиксит каждое сообщение?

Я обычно префикс каждого сообщения с учетной записью, потому что это облегчает их чтение, что-то вроде этого:

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 голосов
/ 23 мая 2018

Когда вы начинаете форматировать сообщение, вы можете делать именно то, что вы просите, обращаясь к полю в шаблоне сообщения, например так:

{UserName}{Message}{NewLine}

Но типичный способ, которым это достигается, - использование{Properties} мета-свойство, которое отображает все значения, не использованные в фактическом сообщении, которые были захвачены / добавлены обогащителями / добавлены вами с помощью ForContext в Properties из LogEvent

{Message} {Properties}{NewLine}

См. https://github.com/serilog/serilog/wiki/Formatting-Output

...