2008-09-19 31 views
5

में उत्पादन लॉगिंग डीबग मोड में नहीं चलते समय आपके फ्लेक्स ऐप के ट्रेस स्टेटमेंट को कैप्चर करने का कोई तरीका है?फ्लेक्स

या डीबगर चलाने पर लॉगिंग जानकारी आउटपुट करने का कोई अन्य तरीका है?

वर्तमान में मैं एक बग को ठीक करने की कोशिश कर रहा हूं जो केवल खुद को बहुत ही विशिष्ट परिनियोजन परिदृश्य में प्रस्तुत करता है, लेकिन मैं इसे कुछ उदाहरणों में उपयोगी साबित कर सकता हूं जब वे बग या अन्य समस्याओं की रिपोर्ट करते समय तकनीकी सहायता के लिए लॉग भेज सकते हैं।

उत्तर

3

मुझे लगता है कि आप फ्लैश प्लेयर को लक्षित करते हुए एडोब फ्लेक्स के बारे में बात कर रहे हैं?

यदि ऐसा है, तो आप अपनी खुद की लॉगिंग रैपर क्लास लिख सकते हैं जो कई लक्ष्यों (जैसे ट्रेस स्टैक और आंतरिक मेमोरी) को भेजे गए लॉग संदेशों को प्रसारित करता है ताकि आप ऐप के भीतर से लॉग तक पहुंच सकें और उदाहरण के लिए इसे भेज दें सर्वर जब उपयोगकर्ता एक बग रिपोर्ट भेजने के लिए सहमत होता है)। इस तरह के कुछ के लिए Flex logging framework भी देखें जो पहले से मौजूद है।

मैं वास्तव में कुछ इस तरह से किया है - मैं एक वर्ग log() की तरह स्थिर तरीकों, debug() साथ Log कहा जाता है, error() आदि है कि मैं अपने ऐप्लिकेशन में उपयोग करते हैं, और इस वर्ग के आगे सभी संदेशों को ट्रेस में करने के लिए भेजा है trace() के माध्यम से, स्थानीय लॉगऑनक्शन और/या सॉकेट (एक सॉकेट कनेक्शन स्पष्ट रूप से स्थानीय कनेक्शन से बहुत तेज़ है) के माध्यम से एक ही होस्ट पर चल रहे "लॉग कंसोल" ऐप में स्टैक करता है और उन्हें स्थानीय रूप से एक सरणी में भी सहेजता है ताकि उपयोगकर्ता बग रिपोर्ट भेज सकें ऐप के भीतर से लॉग आउटपुट के साथ।

इस तरह के बदलाव का मतलब है कि आपको लॉगिंग सिस्टम पर कॉल में अपने कोड में सभी trace() कमांड का अनुवाद करना होगा, लेकिन इसे आसानी से रेगेक्स खोज & प्रतिस्थापित करने के साथ आसानी से हासिल किया जा सकता है।

0

आप फराटा सिस्टम से एक्सपीनेल का प्रयास कर सकते हैं। यह एक मूल विंडोज यूआई है जो फ्लेक्स 3 लॉगिंग एपीआई का उपयोग कर लॉग संदेशों को ब्राउज़र में चल रहे फ्लेक्स अनुप्रयोगों के लिए भी दिखा सकता है। दुर्भाग्य से उन्होंने अपनी साइट को फिर से डिजाइन किया है और मुझे अब यह नहीं मिल रहा है ... शायद Google आपकी मदद करेगा।

हमने जावास्क्रिप्ट का उपयोग करके कुछ अलग किया। ग्राहक एक 'विशेष' पृष्ठ खोल सकता है जो डीएचटीएम का उपयोग करके लॉगिंग और ट्रेस स्टेटमेंट दिखाता है। फ्लेक्स एप्लिकेशन एक जावास्क्रिप्ट फ़ंक्शन को कॉल करता है जो एप्लिकेशन को बताता है कि क्या यह पृष्ठ खोला गया है या नहीं। यदि ऐसा नहीं है, तो लॉगिंग अक्षम है। यदि यह खोला गया है, तो लॉगिंग सक्षम है और सभी लॉग स्टेटमेंट इस पृष्ठ में जोड़े गए हैं।

ध्यान दें कि सैंडबॉक्स प्रतिबंधों के कारण हर समय फाइल सिस्टम में लॉगिंग आउटपुट लिखने का कोई तरीका नहीं है। हालांकि ऊपर वर्णित अनुसार ग्राहक एक लॉगिंग विंडो के आउटपुट को आसानी से कॉपी और पेस्ट कर सकता है।

2

Google Code पर एक परियोजना है कि आप संदेश जब Firefox (बेशक यह है कि आप उस एक्सटेंशन को इंस्टॉल किया यह सोचते हैं।)

इस उपकरण के साथ लॉगिंग में आवेदन चल रहा है कि FireBug में दिखाई देगा लॉग ऑन लिखने की अनुमति देता Thunder Bolt कहा जाता है जितना सरल है:

import org.osflash.thunderbolt.Logger; 

var myNumber: int = 5; 
var myString: String = "Lorem ipsum"; 
Logger.error ("Logging two objects: A number typed as int and a string", myNumber, myString);