Вывод Serilog на консоль (с данными ToString ()) и seq (со структурированными данными)

Aug 17 2020

Я отправляю свои зарегистрированные данные в оба Consoleи в Seqстоки. Работает отлично.

Когда я регистрирую POCO, чтобы:

  • Consoleраковина, это длинная строка текста со всеми свойствами и данными.
  • чтобы Seqтонуть, он хорошо структурирован, поэтому его легко искать / фильтровать / и т. д.

Теперь, есть ли способ, чтобы при выводе значения в приемник консоли он мог использовать метод ToString () POCO (вместо -all- свойств), в то время как для Seq это именно то, что сейчас?

Я просто экспериментирую прямо сейчас - некоторые классы не имеют переопределенного ToString (), так что это означает, что я просто получу имя класса там.

Это возможно?

Ответы

1 NicholasBlumhardt Aug 18 2020 at 04:45

Serilog фиксирует каждое свойство события ровно один раз и в этот момент выбирает либо ToString()структурированное представление, либо.

Только позже в конвейере регистрации события достигают таких приемников, как Consoleи Seq, поэтому отдельный приемник (или конфигурация приемника) не может повлиять на способ захвата определенного значения свойства.