ฉันได้อ่านเกี่ยวกับการติดตามและการบันทึกจำนวนมากพยายามค้นหากฎทองสำหรับแนวทางปฏิบัติที่ดีที่สุดในเรื่องนี้ แต่ก็ยังไม่มีเลย ผู้คนบอกว่าโปรแกรมเมอร์ที่ดีจะสร้างการติดตามที่ดี แต่เอามาเป็นอย่างนั้นและมันต้องมาจากประสบการณ์
ฉันได้อ่านคำถามที่คล้ายกันในที่นี่และผ่านทางอินเทอร์เน็ตและพวกเขาไม่ได้เป็นสิ่งเดียวกันกับที่ฉันถามหรือไม่มีคำตอบที่น่าพอใจบางทีอาจเป็นเพราะคำถามนั้นขาดรายละเอียด
ดังนั้นคนพูดว่าการติดตามควรเรียงลำดับของการจำลองประสบการณ์การใช้งานในกรณีที่คุณไม่สามารถแนบดีบักเกอร์ ควรให้บริบทเพียงพอเพื่อให้คุณสามารถดูว่าพา ธ ใดถูกนำไปที่แต่ละจุดควบคุมในแอปพลิเคชัน
ยิ่งไปกว่านั้นคุณยังสามารถแยกแยะความแตกต่างระหว่างการติดตามและการบันทึกเหตุการณ์ใน "การบันทึกเหตุการณ์จะแตกต่างจากการติดตามที่จะจับภาพสถานะที่สำคัญมากกว่าการไหลอย่างละเอียดของการควบคุม"
ตอนนี้บอกว่าฉันต้องการทำการติดตามและการบันทึกโดยใช้คลาส. NET มาตรฐานเท่านั้นซึ่งอยู่ในSystem.Diagnostics
เนมสเปซ ฉันคิดว่าคลาส TraceSource นั้นดีกว่าสำหรับงานมากกว่าคลาส Trace คงเพราะฉันต้องการแยกความแตกต่างระหว่างระดับการติดตามและการใช้คลาส TraceSource ฉันสามารถส่งผ่านพารามิเตอร์แจ้งประเภทเหตุการณ์ในขณะที่ใช้คลาส Trace ที่ฉันต้องใช้Trace.WriteLineIf
และตรวจสอบสิ่งที่ชอบSourceSwitch.TraceInformation
และSourceSwitch.TraceErrors
และมันก็ไม่ได้มีคุณสมบัติเหมือนหรือTraceVerbose
TraceStart
ในใจคุณจะพิจารณาการฝึกฝนที่ดีให้ทำดังนี้:
- ติดตามเหตุการณ์ "เริ่มต้น" เมื่อเริ่มต้นเมธอดซึ่งควรแสดงถึงการดำเนินการเชิงตรรกะเดี่ยวหรือไพพ์ไลน์พร้อมกับการแทนค่าสตริงของค่าพารามิเตอร์ที่ส่งผ่านไปยังเมธอด
- ติดตามเหตุการณ์ "ข้อมูล" เมื่อแทรกรายการลงในฐานข้อมูล
- ติดตามเหตุการณ์ "ข้อมูล" เมื่อรับหนึ่งพา ธ หรืออย่างอื่นในคำสั่ง if / else ที่สำคัญ
- ติดตาม "Critical" หรือ "Error" ใน catch catch ขึ้นอยู่กับว่าเป็นข้อผิดพลาดที่สามารถกู้คืนได้
- ติดตามเหตุการณ์ "หยุด" เมื่อเสร็จสิ้นการดำเนินการของวิธีการ
และโปรดอธิบายให้ชัดเจนว่าควรติดตามประเภทกิจกรรม Verbose และ Warning เมื่อใด หากคุณมีตัวอย่างของรหัสที่มีการติดตาม / การบันทึกที่ดีและยินดีที่จะแบ่งปันนั่นจะยิ่งดี
หมายเหตุ:ฉันพบข้อมูลที่ดีที่นี่แล้ว แต่ยังไม่ใช่สิ่งที่ฉันกำลังมองหา: http://msdn.microsoft.com/en-us/magazine/ff714589.aspx