c# - दृश्य स्टूडियो की आउटपुट विंडो में लेखन?


मैं डिबगिंग प्रयोजनों के लिए आउटपुट विंडो में एक संदेश लिखने का प्रयास कर रहा हूं I मुझे जावा की सिस्टम। system.out.println("") जैसी फ़ंक्शन की खोज हुई। मैंने Debug.Write की कोशिश Debug.Write , Trace.Write और Trace.Write । यह कोई त्रुटि नहीं देता है, लेकिन यह कुछ भी प्रिंट नहीं करता है

"परिभाषित DEBUG निरंतर" और "परिभाषित करें TRACE निरंतर" विकल्प चेक किए गए हैं।

मेनू टूलविकल्पडिबगिंग"सभी आउटपुट विंडो टेक्स्ट को तत्काल विंडो में रीडायरेक्ट करें" विकल्प चेक नहीं किया गया है।

कॉन्फ़िगरेशन: सक्रिय (डीबग)

नोट: यदि प्रासंगिक हो तो मैं विज़ार्ड के साथ एक प्रोजेक्ट "Windows Forms Application" के रूप में बनाया है मुझे पता नहीं है कि मुझे कहाँ देखना है




Answers


System.Diagnostics जोड़ें। Debug.WriteLine() नाम स्थान, और उसके बाद आप Debug.WriteLine() के आउटपुट विंडो में एक संदेश को त्वरित रूप से प्रिंट करने के लिए Debug.WriteLine() का उपयोग कर सकते हैं। अधिक विवरण के लिए, कृपया इन्हें देखें:




यह डीबग आउटपुट विंडो पर लिखा जाएगा:

using System.Diagnostics;

Debug.WriteLine("Send to debug output.");



उपयोग:

System.Diagnostics.Debug.WriteLine("your message here");



    Debug.WriteLine

वह है जिसे आप ढूंढ रहे हैं।

यदि नहीं, तो ऐसा करने का प्रयास करें:

मेनू टूलविकल्पडिबगिंग → अनचेक आउटपुट को तुरंत भेजें




मेरे लिए, केवल ट्रेस नामस्थान और डीबग नहीं एक काम किया है:

System.Diagnostics.Trace.WriteLine("message");

मैं Visual Studio 2010 के तहत सी # प्रोजेक्ट में काम कर रहा हूं I




आप की तलाश में हो सकता है

MessageBox.Show()

या

Debug.Writeline()



कॉल

System.Diagnostics.Debug.WriteLine("message");

.NET कोर (वी 1.0 या 1.1) के साथ काम करते समय विफल रहता है।

हम Microsoft.Extensions.Logging से लॉगगर का निर्माण और उपयोग करना चाहते हैं, लेकिन यह लॉग केवल dotnet.exe पॉपअप कंसोल विंडो में प्रकट होता है, दृश्य स्टूडियो के आउटपुट विंडो में नहीं।




इसके लिए तीसरी पार्टी ढांचे की आवश्यकता है, अर्थात सेरिलोग , लेकिन फिर भी मैंने इसे कुछ जगह पर उत्पादन प्राप्त करने के साथ एक बहुत ही आसान अनुभव पाया है, मैं इसे देख सकता हूं।

आपको सबसे पहले सेरिलॉग के ट्रेस सिंक को स्थापित करना होगा। एक बार स्थापित होने पर आपको इस तरह से लॉगर सेट करना होगा:

Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .WriteTo.Trace()
    .CreateLogger();

(आप एक अलग न्यूनतम स्तर सेट कर सकते हैं या इसे किसी कॉन्फ़िगर मान या किसी भी सामान्य सेरिलॉग कार्यक्षमता में सेट कर सकते हैं। आप Trace लॉगर को किसी विशिष्ट स्तर पर कॉन्फ़िग ओवरराइड करने के लिए सेट भी कर सकते हैं, या आप ऐसा करना चाहते हैं।)

तब आप सामान्य रूप से संदेश लॉग इन करते हैं और वे आपकी आउटपुट विंडो में दिखाई देते हैं:

Logger.Information("Did stuff!");

यह इस तरह के एक बड़े सौदे की तरह प्रतीत नहीं होता है, तो मुझे कुछ अतिरिक्त लाभ की व्याख्या करें। मेरे लिए सबसे बड़ा एक यह था कि मैं एक साथ आउटपुट विंडो और कंसोल दोनों पर लॉग इन कर सकता हूं:

Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .WriteTo.Trace()
    .WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
    .CreateLogger();

इसने मुझे Console.Write अपने सभी कॉल्स को डुप्लिकेट किए बिना आउटपुट का उपयोग कैसे किया, इसके बारे में मुझे बहुत लचीलेपन दिया। Debug.Write साथ Debug.WriteDebug.Write । कोड लिखते समय, मैं विजुअल स्टूडियो में अपना कमांड लाइन टूल चला सकता हूं, जब मेरी आउटपुट खो जाने के डर के डर से। जब मैंने इसे तैनात किया था और कुछ को डिबग करने के लिए आवश्यक था (और विजुअल स्टूडियो उपलब्ध नहीं था), कंसोल आउटपुट मेरे खपत के लिए आसानी से उपलब्ध था एक संदेश (या किसी अन्य प्रकार का सिंक) जब एक शेड्यूल्ड कार्य के रूप में चल रहा है, तो उसी संदेश को भी लॉग किया जा सकता है

निचला रेखा यह है कि ऐसा करने के लिए सेरिलॉग का प्रयोग करके कई स्थानों पर संदेशों को डंप करना बहुत आसान होता है, यह सुनिश्चित करने के लिए कि मैं हमेशा इसे आसानी से आउटपुट तक पहुंच सकता हूं चाहे मैं इसे कैसे चलाया।

इसमें बहुत कम सेट अप और कोड की आवश्यकता होती है।




विजुअल स्टूडियो के आउटपुट विंडो में प्रिंट करें:

Debug.Writeline();



निम्नलिखित Visual Studio 2015 में मेरे लिए काम किया:

OutputDebugStringW(L"Write this to Output window in VS14.");

आउटपुट डीबगस्ट्रिंग के लिए यहां दस्तावेज़ पढ़ें।

ध्यान दें कि यह विधि केवल तभी काम करती है जब आप अपना कोड debug mode कर रहे हों ( debug mode )




यह मूल प्रश्न का उत्तर नहीं है। परन्तु जब से मुझे यह सवाल मिला है कि ऑब्जेक्ट डेटा को इंटरैक्टिव डंपिंग करने के साधन की तलाश करते हुए, मुझे लगा कि दूसरों को यह बहुत ही उपयोगी विकल्प का उल्लेख करने से फायदा हो सकता है।

मैंने अंत में कमान विंडो का इस्तेमाल किया और Debug.Print प्रवेश किया। Debug.Print कमांड, जैसा कि नीचे दिखाया गया है। इसने एक मेमोरी ऑब्जेक्ट को एक प्रारूप में मुद्रित किया है जिसे पाठ के रूप में कॉपी किया जा सकता है, जो कि मैं वास्तव में जरूरत है

> Debug.Print <item>

  id: 1
  idt: null
  igad: 99
  igbd: 99
  gl_desc: "New #20"
  te_num: "1-001-001-020"