2012-11-12 16 views
7

.NET ढांचे (विशेष रूप से सॉकेट/नेटवर्क कक्षाओं में, जो मैं देख रहा हूं) में कई कक्षाएं कहीं भी ट्रेस संदेशों को लॉग करने के लिए System.Net.GlobalLog (एक आंतरिक श्रेणी) का उपयोग करें। आप उदाहरण SslState कक्षा में GlobalLog.Assert और GlobalLog.Print जैसी चीजों का उपयोग करता है देख सकते हैं:System.Net.GlobalLog - मैं इसका आउटपुट कैसे देखूं?

SslStream source code

यह System.Net.Logging (आंतरिक) वर्ग से अलग है, का उपयोग करता है जो भी कर सकते हैं की पूरे सॉकेट/नेटवर्क कक्षाओं में पाया जाए।

System.Net.Logging के लिए, मैं जानता हूँ कि मैं app.config में एक <system.diagnostics> विन्यास ब्लॉक का उपयोग कर सकते हैं और उस System.Net.Logging अगर ठीक से विन्यस्त संदेशों लॉग इन किया जा रहा है का परिणाम देगा। हालांकि, यह System.Net.GlobalLog को प्रभावित नहीं करता है।

लगभग एक घंटे के आसपास खोज करने के बाद, मुझे System.Net.GlobalLog के आउटपुट का पता लगाने के बारे में कोई जानकारी नहीं मिल रही है। क्या किसी को पता है कि इस आउटपुट को कैसे ढूंढें/देखें/नियंत्रित करें?

उत्तर

2

जैसा कि आपने कहा है, ग्लोबललॉग System.Net असेंबली के लिए एक आंतरिक वर्ग है। System.Net असेंबली को संशोधित करने में सक्षम होने के बिना आपको उस कक्षा तक पहुंच नहीं मिलेगी।

कहा कि, आप की समीक्षा करने के लिए निम्न चाह सकते हैं: http://www.123aspx.com/rotor/RotorSrc.aspx?rot=42941

ऐसा लगता है कि आप यह काम करने के लिए प्राप्त करने के लिए संकलक झंडे TRAVE और DEBUG सेट करने के लिए है .. लेकिन मुझे नहीं दिखाई दे रही है जहां यह वास्तव में लॉग जानकारी के साथ कुछ भी करता है। टिप्पणियों का सुझाव है कि यह एक पर्यावरण परिवर्तनीय सेटिंग की तलाश है और सिस्टम पर कहीं भी एक फ़ाइल फ़ाइल में लॉग डंप करना है; हालांकि उस पृष्ठ का कोड अधूरा लगता है या यह बस समाप्त नहीं हुआ था।

मेरा अनुमान है कि आपको लॉगिंग जानकारी तक पहुंच प्राप्त करने का कोई अन्य तरीका ढूंढना होगा।

+3

यह क्या उबला हुआ था कि, System.dll लाइब्रेरी का डीबग/ट्रेव-संकलित संस्करण के बिना, मुझे वह जानकारी नहीं मिल रही थी। साथ ही, इन कक्षाओं के स्रोत कोड को विजुअल स्टूडियो में नहीं रखा जा सकता है, इसलिए वास्तविकता से डीबग करना असंभव है कि क्या हो रहा है। जबकि आपके उत्तर ने मेरी समस्या का समाधान नहीं किया, यह सही जवाब था। मेरी समस्या का अंतिम समाधान "एसएसएलस्ट्रीम को मिटाना और बाउंसीकास्टल के टीएलएस कार्यान्वयन के साथ जाना" समाप्त हो गया। मैं प्रमाण पत्र पीढ़ी के लिए पहले से ही उस लाइब्रेरी का उपयोग कर रहा था, इसलिए इसने मेरे प्रोजेक्ट में अतिरिक्त निर्भरताओं को नहीं जोड़ा। –

+0

इसके अतिरिक्त, System.Net.Logging भी एक आंतरिक वर्ग है, और फिर भी उस वर्ग के आउटपुट को देखने/निर्देशित करने के लिए एक दस्तावेज तरीका है। ग्लोबल लॉग नहीं। दिलचस्प। –

0

मेरे पास मौजूदा उत्तर पर टिप्पणी के रूप में रखने के लिए पर्याप्त प्रतिनिधि नहीं है लेकिन मैं यह जानना चाहता था कि टीसीपी क्लाइंट और सॉकेट कक्षाओं में क्या हो रहा था, लेकिन यह भी पाया कि उन्हें कदम नहीं उठाया जा सका। मुझे मिला सबसे नज़दीकी विंडोज एपीआई कॉल की निगरानी करके किया गया था। मैंने एपीआई मॉनीटर नामक एक फ्रीवेयर टूल का इस्तेमाल किया: http://www.rohitab.com/apimonitor

संबंधित मुद्दे