Saída Serilog para o console (com dados ToString ()) e seq (com dados estruturados)

Aug 17 2020

Eu envio meus dados registrados para ambos Consolee Seqcoletores. Funciona bem.

Quando eu registro um POCO para:

  • o Consolecoletor, é uma longa linha de texto com todas as propriedades e os dados.
  • para Seqafundar, é bem estruturado para ser fácil de pesquisar / filtrar / etc.

Agora, há uma maneira de que, quando enviarmos o valor para o coletor do Console, ele possa usar o método ToString () do POCO (em vez de -todas- as propriedades) enquanto para Seq é exatamente o que é agora?

Estou apenas experimentando agora - algumas classes não têm um ToString () sobrescrito, então isso significa que vou obter o nome da classe lá.

Isso é possível?

Respostas

1 NicholasBlumhardt Aug 18 2020 at 04:45

O Serilog captura cada propriedade do evento exatamente uma vez e, nesse ponto, escolhe uma ToString()ou uma representação estruturada.

É apenas mais tarde no pipeline de registro que os eventos alcançam coletores como Consolee Seq, portanto, não há como um coletor individual (ou configuração para um coletor) influenciar como um determinado valor de propriedade é capturado.