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()