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เพื่อให้มีวิธีการที่อ่างล้างจานของแต่ละบุคคล (หรือการกำหนดค่าสำหรับอ่างล้างจาน) ที่มีอิทธิพลต่อวิธีการที่มูลค่าทรัพย์สินโดยเฉพาะอย่างยิ่งถูกจับ