2012-05-30 15 views
5

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

जब मैं अपने एज़ूर उदाहरण में दूरस्थ डेस्कटॉप करता हूं, तो मुझे नहीं पता कि वही जानकारी कहां प्राप्त करें। मुझे मानक आउटपुट और त्रुटि कहां मिलती है?

+0

क्या आप System.Diagnostics का उपयोग कर रहे हैं। अपनी कार्यकर्ता भूमिका में संदेश लिखने के लिए? – AvkashChauhan

+0

नहीं, मैं एक गैर-.NET 'ProgramEntryPoint' के साथ एक वर्कर भूमिका चला रहा हूं। हालांकि, मैं देख सकता हूं कि यह मेरे प्रश्न से स्पष्ट नहीं है --- मैं इसे संबोधित करने के लिए एक नया प्रश्न खोलूंगा। –

+0

देखें [यह प्रश्न] (http://stackoverflow.com/questions/10827388/) यदि आप एक Azure वर्कर रोल में गैर-.NET ऐप चलाने के लिए 'ProgramEntryPoint' का उपयोग कर रहे हैं)। –

उत्तर

0

ट्रेस संदेश विंडो एज़ूर में कहीं भी संग्रहीत नहीं किया जाता है, यदि आप Azure डायग्नोस्टिक्स को ठीक से कॉन्फ़िगर करते हैं तो वे संदेश वहां से Windows Azure Table Storage (WADLogsTable Table) पर भेजे जाते हैं, जिससे आप उन्हें प्राप्त कर सकते हैं।

आप Azure निदान सक्षम करने के लिए कैसे के लिए निशान नीचे दिए गए लिंक पर जाएँ और विंडोज Azure निदान प्रदर्शन कोड नमूना देखने के लिए जानना चाहते हैं:

http://msdn.microsoft.com/en-us/library/windowsazure/hh411529.aspx

आप Azure निदान here के बारे में विवरण सीख सकते हैं।

3

यदि आप अपने मानक आउटपुट और वास्तविक कार्यस्थल में अपनी कार्यकर्ता प्रक्रिया की त्रुटि देखना चाहते हैं तो आपको कुछ अतिरिक्त कॉन्फ़िगरेशन करने की आवश्यकता होगी। यह डेटा एक सतत भंडारण में संग्रहीत किया जाना चाहिए।

पहला चरण अपने WorkerRole की कॉन्फ़िगरेशन विंडो में डायग्नोस्टिक्स को सक्षम करना है। यहां एक भंडारण खाता निर्दिष्ट किया जाना चाहिए।

अगला चरण WorkerRole की OnStart() विधि में अतिरिक्त कोड जोड़ना है। यहां आप केवल मानक आउटपुट और त्रुटि को कॉन्फ़िगर नहीं कर सकते हैं, लेकिन आप निम्न कोड उदाहरण में प्रदान की गई विंडोज इवेंट और डायग्नोस्टिक जानकारी भी सुन सकते हैं।

public override bool OnStart() 
{ 
    DiagnosticMonitorConfiguration diagConfig = 
     DiagnosticMonitor.GetDefaultInitialConfiguration(); 

    // Windows event logs 
    diagConfig.WindowsEventLog.DataSources.Add("System!*"); 
    diagConfig.WindowsEventLog.DataSources.Add("Application!*"); 
    diagConfig.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Error; 
    diagConfig.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(5); 

    // Azure application logs 
    diagConfig.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; 
    diagConfig.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(5); 

    // Performance counters 
    diagConfig.PerformanceCounters.DataSources.Add(
     new PerformanceCounterConfiguration() 
    { 
     SampleRate = TimeSpan.FromSeconds(5), 
     CounterSpecifier = @"\Processor(*)\% Processor Time" 
    }); 
    diagConfig.PerformanceCounters.ScheduledTransferPeriod = 
     TimeSpan.FromMinutes(5); 
    DiagnosticMonitor.Start(
     "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagConfig); 
    return base.OnStart(); 
} 

इन सेटिंग्स के बाद आपका डायग्नोस्टिक डेटा कॉन्फ़िगर किए गए Azure Table संग्रहण में दिखाई देगा। आप यहां अपने डेटा को देखने के लिए आसानी से टूल लिख सकते हैं, लेकिन इसके लिए कुछ वाणिज्यिक टूल भी हैं जो इसके लिए कार्यक्षमता में बनाए गए हैं। उदाहरण के लिए Cerebrata Diagnostics Manager

यदि किसी कारण से आप लॉग फ़ाइलों को संग्रहीत करने के लिए एज़ूर स्टोरेज का उपयोग नहीं करना चाहते हैं तो आप कस्टम ट्रेस श्रोता को कार्यान्वित कर सकते हैं जो कहीं और लॉग लिख सकता है। Here यह कैसे करना है इसके बारे में एक विवरण है। आप बस एक http पोर्ट खोल सकते हैं और उन्हें अपने सर्वर पर स्थानांतरित कर सकते हैं।

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