2013-10-09 77 views
6

मैं एक दूरस्थ सर्वर पर आईओएस ऐप की घटनाओं को लॉग करना चाहता हूं।ऑफ़लाइन लॉग पर फ़ॉलबैक के साथ दूरस्थ सर्वर पर आईओएस ऐप लॉगिंग को कैसे कार्यान्वित करें?

जब सर्वर डिवाइस से पहुंच योग्य होता है, तो मैं सर्वर पर एक एपीआई कॉल कर रहा हूं। जब डिवाइस ऑफ़लाइन है, तो मैं एक टेक्स्ट फ़ाइल में लॉग जोड़ रहा हूं।

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

हालांकि, यदि कनेक्शन उपलब्धता के बीच लंबी अंतराल हैं तो सैद्धांतिक रूप से ऑफ़लाइन लॉग फ़ाइल वास्तव में बड़ी और अपलोड करने में मुश्किल हो सकती है।

यह सुनिश्चित करने के विकल्प क्या हैं कि लॉग (ऑनलाइन और ऑफलाइन मोड दोनों से) अंततः रिमोट सर्वर तक पहुंच जाए?

उत्तर

0

आपने पूछा "क्या यह करने के लिए एक अच्छी बात है"? उत्तर काफी हद तक निर्भर करता है कि आपका ऐप क्या है और आप डेटा का उपयोग कैसे करेंगे, इसलिए मुझे यकीन नहीं है कि कोई भी आपके लिए इसका जवाब दे सकता है ... डिवाइस पर पुराने लॉग को हटा रहा है? एक अच्छा विचार की तरह लगता है कि अगर वे बाद में सुझाव देते हैं तो वे बड़े होने जा रहे हैं। हालांकि मैं आपको अपने उपयोगकर्ताओं की गोपनीयता को ध्यान में रखने की सलाह दूंगा। क्या उन्हें उन डेटा के बारे में अधिसूचित किया जाएगा जिन्हें आप उनके बारे में एकत्र कर रहे हैं? क्या आप ऑप्ट-आउट करने का विकल्प प्रदान करेंगे?

क्या आपके परिदृश्य के लिए कोई विकल्प है? नहीं। यदि आप अंततः सर्वर पर डेटा भेजने की योजना बना रहे हैं और आपके पास कोई इंटरनेट कनेक्शन नहीं है, तो आपको इसे स्थानीय रूप से कहीं भी स्टोर करने की आवश्यकता है। एक और विकल्प कैसे हो सकता है? नहीं, कोई दूसरा विकल्प नहीं है। बड़े लॉग बड़े स्मृति लेते हैं।

0

इस NSLogger पर एक नज़र डालें। यह सहायक हो सकता है।

0

प्रतिदिन के आधार पर फ़ाइलों में ऑफ़लाइन लॉग सहेजने के बारे में क्या, प्रत्येक दिन इसे अपनी फ़ाइल मिलती है। इस तरह आप इसे हिस्सों में भेज सकते हैं और जब आप अंत में कनेक्शन करते हैं तो उसे बड़े पैमाने पर लॉग फ़ाइल की सामग्री को पढ़ने के लिए हटा दिया जाता है और इसे सर्वर पर सबमिट कर दिया जाएगा।

1

मैंने अभी अपना खुद का समाधान बनाया: https://github.com/kennethjiang/Teleport-NSLog। आपको आवश्यक फ़ंक्शन के लिए "SimpleHTTPForwarder" पर एक नज़र डालें।

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

चूंकि फॉरवर्डर हमेशा एक धारावाहिक कतार में चलता है, इसलिए कोई सहमति/दौड़ स्थिति समस्या नहीं होती है। कोड सरल और साफ है!

2

आप Bugfender पर एक नज़र डाल सकते हैं, यह एक उत्पाद है जिसे हमने इस समस्या को हल करने के लिए बनाया है।

एकीकृत करना आसान है और आप यह चुन सकते हैं कि आप कौन से डिवाइस से लॉग प्राप्त करना चाहते हैं। हमारी सेवा ऑफ़लाइन और ऑनलाइन काम करती है, हमने इसे विश्वसनीय और उपयोग करने में आसान बनाने के लिए काफी समय बिताया है।

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

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