जब ऐप लॉन्च किया जाता है, तो फायरबेस को लॉगिंग स्टेटस अपडेट से कैसे रोकें


98

जब भी मैं FireBase ऐप लॉन्च करता हूं, यह विभिन्न फायरबेस सुविधाओं की स्थिति को लॉग करता है। अभी यह वही है जो लॉग किया जा रहा है:

Configuring the default app.

<FIRAnalytics/INFO> Firebase Analytics v.3200000 started

<FIRAnalytics/INFO> To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see ...)

<FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist

<FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO

<FIRAnalytics/INFO> Firebase Analytics enabled

मैंने पॉड्स के माध्यम से देखा और कोई भी प्रिंट स्टेटमेंट नहीं पाया, इसलिए मैं इन एप को लॉग इन करने से रोकने के बारे में और क्या कहूंगा?


3
मैं आपसे सहमत हुँ। मैं संदेशों को अक्षम करने का तरीका भी ढूंढ रहा हूं।
गुई मौरा

1
क्या आपको कोई विधि मिली?
गिलियन

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

जवाबों:


117

आप डिबग लॉगिंग को ध्वज के साथ अक्षम कर सकते हैं -FIRDebugDisabled

आप इसे अपनी योजना में जोड़ सकते हैं :

  1. स्कीम टूलबार चुनें
  2. योजना संपादित करें
  3. रन का चयन करें
  4. तर्क पर क्लिक करें और जोड़ें -FIRDebugDisabled

1
आह मैंने इंजीनियरों के साथ जाँच की - उन संदेशों की परवाह किए बिना लॉग इन किया जाएगा। ध्वज के साथ, हालांकि, आपको यह सब देखना चाहिए।
इयान बार्बर

20
A -noFIRAnalyticsDebugEnabledका नाम बदल दिया गया -FIRDebugDisabled। अन्य चरण समान हैं।
मराट सयातकोव

3
वास्तव में अच्छा नहीं है (यह संभवतः कोड रिपॉजिटरी आदि में नहीं जोड़ा जाएगा और इस प्रकार बिल्ड विधि के आधार पर अलग-अलग कोड का कारण होगा (थिंक रन / आर्काइव))। डिफ़ॉल्ट रूप से, रिलीज़ बिल्ड में लॉग ऑफ होना चाहिए ... IMHO ds
जॉनी


62

लॉगिंग की न्यूनतम राशि प्राप्त करने FirebaseConfiguration.shared.setLoggerLevel(.min)से पहले जोड़ें FirebaseApp.configure()

func setupFirebase() {
  FirebaseConfiguration.shared.setLoggerLevel(.min)
  FirebaseApp.configure()
}

यह काम करता है!
काइल गोसलान

3
कोड ने FIRConfiguration.saredInstance ()। SetLoggerLevel (.min) को अपडेट किया है
क्रिसन

16

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

नीचे दिखाए गए अनुसार FirebaseApp.configure () से पहले setLoggerLevel

स्विफ्ट 2.3 और फायरबेस 4 में

 FirebaseConfiguration.sharedInstance().setLoggerLevel(.Error)
 FirebaseApp.configure()

स्विफ्ट 3 और फायरबेस 4 में

 FirebaseConfiguration.shared.setLoggerLevel(.min)
 FirebaseApp.configure()

इस कोड को ऑब्जेक्टिव c में कैसे लिख सकते हैं आप मुझे धन्यवाद कह सकते हैं
योगेश पटेल

15

मेरे मामले में फायरबेस से अतिरिक्त सांत्वना लॉग को छिपाने के लिए मैंने निम्नलिखित कार्य किया:

  1. उत्पाद पर नेविगेट करें -> योजना -> योजना संपादित करें।
  2. पर्यावरण चर खंड में तर्क टैब के तहत OS_ACTIVITY_MODE = अक्षम जोड़ें

यहां छवि विवरण दर्ज करें

  • बस अगर आपको बॉक्स को अनचेक करना है, तो आपको इसकी आवश्यकता होगी।
  • OS_ACTIVITY_MODE अक्षम करना कभी-कभी सभी अपवादों के लिए भी लॉग अक्षम करेगा

संपादित 1 : जैसा कि @ jesus-adolfo-rodriguez ने कहा, यह Xcode से संबंधित है। इसलिए, यदि आप Xcode कंसोल पर OSLog नहीं चाहते हैं, तो अपनी योजना में "अक्षम" करने के लिए OS_ACTIVITY_MODE पर्यावरण चर डालें।


2 संपादित करें:

FirebaseConfiguration.shared.setLoggerLevel(FirebaseLoggerLevel.min)
FirebaseApp.configure()

FIRConfiguration कार्यान्वयन में और अधिक विवरण यहाँ


संपादन ३: २०१ ९

इस अंक के अनुसार: https://github.com/firebase/firebase-ios-sdk/issues/2774#issuecomment-482780714

जोड़ना -FIRDebugDisabled तर्क और परियोजना की सफाई ने चाल चली

फायरबेस में लॉगिंग सिस्टम

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

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

FIRLONfiguration इंटरफ़ेस पर setLoggerLevel: को कॉल करके डिफ़ॉल्ट लॉगिंग स्तर को कोड में बदलना भी संभव है।


3
इसका फायरबेस से कोई लेना-देना नहीं है
यीशु रोड्रिगेज

और यदि आप उन्हें दिखाना चाहते हैं तो अपने एनालिटिक्स को छिपा देंगे -FIRAnalyticsDebugEnabled
DogCfish

इसने मेरे लिए सभी लॉग को निष्क्रिय कर दिया। जैसा कि आपने अंतिम बिंदु में कहा था।
आर। मोहन

यह मुझे मदद की Firebase से संदेश जो होते हुए भी लॉग इन थे कम करने के लिए setLoggerLevel(.min)और -FIRDebugDisabled। बहुत बढ़िया जवाब!
kelin

4
सभी लॉगिंग को अक्षम करने के लिए लोगों को बताना बंद करें।
क्लॉस जोर्जेंसन


6

स्विफ्ट 4 फायरबेस 4.10

अपने AppDelegate.swift में लकड़हारा स्तर सेट करें

FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)

यहाँ पूर्ण कोड है:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)
    FirebaseApp.configure()
    return true
}

4

डिफ़ॉल्ट रूप से Firebase Analytics केवल उत्पादन + त्रुटियों / चेतावनियों में 4 जानकारी लाइनों को लॉग करेगा। अगर चीजें सही तरीके से काम करती हैं तो यह बहुत कम आउटपुट होना चाहिए। Add -noFIRAnalyticsDebugEnabled केवल DEBUG स्तर लॉग को अक्षम करेगा और ERROR / WARN हमेशा लॉग इन होता है। यदि आपको कोई चेतावनी या त्रुटियां दिखाई देती हैं, तो संभवतः आपको कारण को हल करने के लिए कुछ करने की आवश्यकता है। यदि चेतावनी / त्रुटियाँ लॉग इन हैं तो कुछ चीजें सही ढंग से काम नहीं करेंगी। सही सेटअप करने वाले ऐप में त्रुटियों / चेतावनियों को लॉग नहीं करना चाहिए।

FIRInstanceID / * के साथ टैग किए गए संदेशों को फायरबेस अधिसूचना द्वारा लॉग किया जाता है और त्रुटियों / चेतावनियों को हमेशा लॉग किया जाता है।


3

जैसा कि djabi ने कहा, यदि आप INFO, चेतावनी या त्रुटि हैं तो आप उन लॉग को अक्षम नहीं कर सकते।

मैं नितिन गोहेल के जवाब को जोड़ना चाहता हूं क्योंकि मैं टिप्पणी नहीं कर सकता: फ्लैग फायरबेसबेसडेलीगेटप्रॉक्सी इनेबल्ड लॉग को अक्षम करने के लिए नहीं है। यदि आप इसे बंद कर देते हैं, तो आप ऑटो अभियान ट्रैकिंग खो देंगे और आपको स्वयं URL और उपयोगकर्ता गतिविधि को संभालने के लिए FIRAnalytics (AppDelegate) से विधियों को जोड़ना होगा।


3

एलेक्स के जवाब में जोड़ने के लिए, https://firebase.google.com/docs/cloud-messaging/ios/client से

FirebaseAppDelegateProxyEnabled आपके ऐप के प्रतिनिधि के तरीकों को बदलने के लिए है

FCM API दो प्रमुख क्षेत्रों में स्विज़लिंग विधि करता है: FCM पंजीकरण टोकन के लिए अपने APNs टोकन की मैपिंग और डाउनस्ट्रीम संदेश कॉलबैक हैंडलिंग के दौरान एनालिटिक्स डेटा कैप्चर करना। जो डेवलपर स्विज़लिंग का उपयोग नहीं करना चाहते हैं , वे ऐप की Info.plist फ़ाइल में फ्लैग FirebaseAppDelegateProxyEnabled को जोड़कर और इसे NO (बूलियन मान) पर सेट करके अक्षम कर सकते हैं । गाइड के प्रासंगिक क्षेत्र कोड उदाहरण प्रदान करते हैं, दोनों के साथ और बिना विधि स्विज़लिंग सक्षम किए।


1

मुझे लगता है कि एक बड़ा और बहुत महत्वपूर्ण भ्रम चल रहा है।

-FIRDebugDisabledइसका उपयोग करने से यह डिबग मोड को अक्षम कर देगा जो तब परीक्षण और विकास के दौरान आपके माप प्रभावित होंगे

लॉग को कम करने के लिए:

FirebaseConfiguration.shared.setLoggerLevel(.min)
FirebaseApp.configure()

हालाँकि संस्करण 6.18 और 6.20 पर एक बग है

वर्कअराउंड के रूप में आप उपयोग कर सकते हैं -noFIRAnalyticsDebugEnabledजो एक अलग बात है, यह आपके डिबग मोड को अक्षम नहीं करता है।


पहली बग 8 अगस्त, 2019 को बनाई गई और अभी तक कोई ठीक नहीं हुई :( उम्मीद है कि वे इसे जल्द ही ठीक कर
देंगे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.