Sortie de Serilog vers la console (avec des données ToString ()) et seq (avec des données structurées)

Aug 17 2020

Je produis mes données enregistrées aux deux Consoleet aux Seqpuits. Fonctionne très bien.

Lorsque j'enregistre un POCO sur:

  • l' Consoleévier, c'est une longue ligne de texte avec toutes les propriétés et les données.
  • à Seqcouler, il est bien structuré, il est donc facile de rechercher / filtrer / etc.

Maintenant, y a-t-il un moyen pour que lorsque nous sortons la valeur vers le récepteur de la console, il puisse utiliser la méthode ToString () du POCO (au lieu de -toutes- les propriétés) alors que pour Seq c'est exactement ce que c'est, maintenant?

J'expérimente juste en ce moment - certaines classes n'ont pas de ToString () surchargée, ce qui signifie que j'obtiendrai simplement le nom de la classe.

Est-ce possible?

Réponses

1 NicholasBlumhardt Aug 18 2020 at 04:45

Serilog capture chaque propriété d'événement exactement une fois, et à ce moment-là choisit une ToString()représentation structurée.

Ce n'est que plus tard dans le pipeline de journalisation que les événements atteignent des puits tels que Consoleet Seq, il n'y a donc aucun moyen pour un récepteur individuel (ou une configuration pour un puits) d'influencer la façon dont une valeur de propriété particulière est capturée.