आम तौर पर, आपको सीधे कंसोल, इवेंट लॉग, एमएसएमक्यू या अपने आवेदन कोड से कहीं और डायग्नोस्टिक जानकारी लिखने से बचना चाहिए। इसके बजाय लॉगिंग एपीआई को कॉल करें, और जहां चाहें आउटपुट को रीडायरेक्ट करने के लिए कॉन्फ़िगरेशन का उपयोग करें।
उदाहरण के लिए, आप Trace.WriteLine (*) द्वारा सभी कंसोल। राइटलाइन को प्रतिस्थापित कर सकते हैं। फिर आप एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल को संशोधित करके आउटपुट को कंसोल, फ़ाइल या अन्यत्र रीडायरेक्ट कर सकते हैं: उदाहरण के लिए कंसोल पर आउटपुट करने के लिए, कंसोलट्रेस लिस्टनर का उपयोग करें, जैसे कुछ:
<trace autoflush="false" indentsize="4">
डीबगिंग करते समय, आपको कंसोल पर अपना आउटपुट मिलेगा - उस ग्राहक साइट पर जिसे आप इसे ट्रेस आउटपुट को किसी फ़ाइल में इवेंट लॉग या इसी तरह रीडायरेक्ट करने के लिए कॉन्फ़िगर करेंगे।
इससे भी बेहतर, किसी तृतीय पक्ष लॉगिंग फ्रेमवर्क का उपयोग करें (मैं Log4Net की अनुशंसा करता हूं) जो आपको System.Diagnostics.Trace से अधिक विकल्प देगा।
(*) Trace.Write/Trace.WriteLine Debug.Write/Debug.WriteLine के समान हैं, सिवाय इसके कि बाद वाले को केवल तभी संकलित किया जाता है जब DEBUG प्रतीक परिभाषित किया गया हो। तो अगर आप रिलीज बिल्ड में आउटपुट उपलब्ध होना चाहते हैं तो डीबग को ट्रेस को प्राथमिकता दें।