2015-04-23 9 views
0

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

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

ответ

3

Похоже, что LogEntries обрабатывает текст сообщения, а не свойства в записи serilog, поэтому вам необходимо добавить параметр outputTemplate в оператор расторжения LogEntries для обработки любых обогащенных свойств, которые вы используете, если хотите, чтобы они отображались Кроме того, если вы хотите, чтобы они были проиндексированы 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() 

 Смежные вопросы

  • Нет связанных вопросов^_^