Uscita Serilog su console (con dati ToString ()) e seq (con dati strutturati)

Aug 17 2020

Ho inviato i miei dati registrati a entrambi Consolee ai Seqsink. Funziona alla grande.

Quando registro un POCO su:

  • il Consolesink, è una lunga riga di testo con tutte le proprietà e i dati.
  • al Seqlavandino, è ben strutturato in modo che sia facile per la ricerca / filtro / etc.

Ora, c'è un modo in modo che quando inviamo il valore al sink della console, potrebbe utilizzare il metodo ToString () del POCO (invece di -tutte- le proprietà) mentre per Seq è esattamente quello che è, ora?

Sto solo sperimentando in questo momento: alcune classi non hanno un ToString () sovrascritto, quindi ciò significa che otterrò solo il nome della classe.

È possibile?

Risposte

1 NicholasBlumhardt Aug 18 2020 at 04:45

Serilog acquisisce ciascuna proprietà dell'evento esattamente una volta e, a quel punto, sceglie una ToString()o una rappresentazione strutturata.

È solo più avanti nella pipeline di registrazione che gli eventi raggiungono sink come Consolee Seq, quindi non c'è modo per un singolo sink (o configurazione per un sink) di influenzare il modo in cui viene acquisito un particolare valore di proprietà.