Serilog для LogEntries MachineName и ThreadId не регистрируются

Я использую Serilog для входа на LogEntries.com, но когда я настроил Serilog для отправки записей, обогащенных MachineName и ThreadId, они не отображаются в записях LogEntries.

Как отформатировать запись, отправляемую в LogEntries? Должен ли я вручную сделать их частью формата этих сообщений и как это сделать?

1 ответ

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

var log = new LoggerConfiguration().ReadFrom.AppSettings()
.Enrich.With(
  new MachineNameEnricher(),
  new ThreadIdEnricher()
).WriteTo.Logentries(
  ConfigurationManager.AppSettings["LogentriesToken"],
  outputTemplate: "{Timestamp:G} [{Level}] Mx={MachineName} (Td={ThreadId}) {Message}{NewLine}{Exception}"
).CreateLogger()
Другие вопросы по тегам