Uygulama başlatıldığında Firebase'in durum güncellemelerini günlüğe kaydetmesini nasıl durdurabilirim?


98

FireBase uygulamasını her başlattığımda, çeşitli Firebase özelliklerinin durumunu günlüğe kaydediyor. Şu anda kaydedilen şey bu:

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

Bölmelere baktım ve herhangi bir yazdırma ifadesi bulamadım, bu yüzden uygulamayı çalıştırdığımda bunların fazla mesai olarak kaydedilmesini nasıl durdurabilirim?


3
Size katılıyorum. Ayrıca mesajları devre dışı bırakmanın bir yolunu arıyorum.
Gui Moura

1
Bir yöntem buldunuz mu?
Gilian

Mesajları kapatmak için kesinlikle bir durum olmalı. Kaçının kaydedildiği önemli değil. Uyarılar ve hatalar almak benim için sorun değil ama ilk mesajlar dikkat dağıtıcı, hiç şüphem yok.
Jakub Truhlář

Yanıtlar:


119

Hata ayıklama günlüğünü bayrakla devre dışı bırakabilirsiniz -FIRDebugDisabled.

Sen ekleyebilirsiniz düzeni :

  1. Şema araç çubuğunu seçin
  2. Şemayı Düzenle
  3. Çalıştır'ı seçin
  4. Bağımsız değişkenlere tıklayın ve ekleyin -FIRDebugDisabled

1
Ah mühendisleri kontrol ettim - bu mesajlar ne olursa olsun günlüğe kaydedilecek. Yine de bayrakla, görmeniz gereken tek şey bu.
Ian Barber

20
A -noFIRAnalyticsDebugEnabled, olarak yeniden adlandırıldı -FIRDebugDisabled. Diğer adımlar aynıdır.
Marat Saytakov

3
Gerçekten iyi değil (bu muhtemelen kod depolarına vb. Eklenmeyecek ve bu nedenle derleme yöntemine bağlı olarak farklı koda neden olacaktır (çalıştır / arşivi düşünün)). Varsayılan olarak, sürüm derlemelerinde günlükler KAPALI olmalıdır ... IMHO 😎
Jonny

1
bu, firebase analitiği için hata ayıklama modunu değiştirmenin korkunç yan etkisine sahip
Hogdotmac

63

Minimum miktarda günlük kaydı elde etmek için FirebaseConfiguration.shared.setLoggerLevel(.min)önce ekleyin FirebaseApp.configure().

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

İşi bu yapıyor!
Kyle Goslan

3
Kod FIRConfiguration.sharedInstance () olarak güncellendi. SetLoggerLevel (.min)
Chrishan

16

Firebase, varsayılan olarak bilgileri, hataları ve uyarıları günlüğe kaydeder.
Böylece ihtiyaç duyduğunuz günlük kaydedici seviyesini ayarlayabilirsiniz.
.Error için ayarlarsanız, yalnızca hata oluştuğunda minimum günlük alırsınız.

aşağıda gösterildiği gibi FirebaseApp.configure () öncesinde setLoggerLevel

Swift 2.3 ve Firebase 4'te

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

Swift 3 ve Firebase 4'te

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

Bu kodu objektif olarak nasıl yazabilirim lütfen bana teşekkür eder misiniz
Yogesh Patel

15

Benim durumumda fazladan konsol günlüğünü Firebase'den gizlemek için aşağıdakileri yaptım:

  1. Ürün -> Şema -> Şemayı Düzenle'ye gidin.
  2. Ortam Değişkenleri bölümündeki Bağımsız Değişkenler sekmesi altında OS_ACTIVITY_MODE = devre dışı bırakın

görüntü açıklamasını buraya girin

  • Sadece buna ihtiyacınız olması durumunda, sadece kutunun işaretini kaldırmanız yeterlidir.
  • Devre dışı bırakılması OS_ACTIVITY_MODE bazen kuyu gibi tüm istisnalar günlükleri devre dışı bırakır

Düzenleme 1 : @ jesus-adolfo-rodriguez'in dediği gibi, bu Xcode ile ilgili. Dolayısıyla, Xcode konsolunda OSLog istemiyorsanız, düzeninize OS_ACTIVITY_MODE Ortam değişkenini "devre dışı bırak" olarak koyun.


Düzenleme 2:

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

FIRConfiguration uygulamasında daha fazla ayrıntı burada


Edit 3: 2019

Bu soruna göre: https://github.com/firebase/firebase-ios-sdk/issues/2774#issuecomment-482780714

-FIRDebugDisabled argümanını eklemek ve projeyi temizlemek hile yaptı.

Firebase'deki günlük kaydı sistemi

Günlük sisteminin iki modu vardır: varsayılan mod ve hata ayıklama modu. Varsayılan modda, yalnızca günlük seviyesinde Bildirim, Uyarı ve Hata içeren günlükler cihaza gönderilecektir. Hata ayıklama modunda, tüm günlükler cihaza gönderilecektir. Firebase'in kullandığı günlük düzeyleri, ASL günlük düzeyleriyle tutarlıdır.

Uygulamaya -FIRDebugEnabled bağımsız değişkenini ileterek hata ayıklama modunu etkinleştirin. Bu bağımsız değişkeni uygulamanın Xcode şemasına ekleyebilirsiniz. Hata ayıklama modu -FIRDebugEnabled aracılığıyla etkinleştirildiğinde, uygulamanın diğer yürütmeleri de hata ayıklama modunda olacaktır. Varsayılan moda dönmek için hata ayıklama modunu -FIRDebugDisabled uygulama bağımsız değişkeniyle açıkça devre dışı bırakmalısınız .

FIRConfiguration arabiriminde setLoggerLevel: öğesini çağırarak varsayılan günlük kaydı düzeyini kodda değiştirmek de mümkündür.


3
bunun firebase ile ilgisi yok
Jesus Rodriguez

ve gösterilmesini istiyorsanız analizlerinizi gizleyecektir -FIRAnalyticsDebugEnabled
DogCoffee

1
Bu benim için tüm günlükleri devre dışı bıraktı. Son noktada söylediğin gibi.
R. Mohan

Bu rağmen günlüğe Firebase gelen mesajları azaltmak için bana yardımcı oldu setLoggerLevel(.min)ve -FIRDebugDisabled. Mükemmel cevap!
kelin

4
İnsanlara tüm günlük kaydını devre dışı bırakmalarını söylemeyi bırakın.
Claus Jørgensen

7

Swift 4 Firebase 4.10

AppDelegate.swift'inizde günlükçü düzeyini ayarlayın

FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)

İşte tam kod:

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

1
Ekim 2020 itibariyle, Firebase günlüklerinden kurtulan, ancak kendi günlüğümü bırakan tek cevap bu. Uygulamanızın başlangıcında neler olduğunu analiz etmeye yardımcı olur.
Jesse Pangburn

7
FIRConfiguration.sharedInstance().setLoggerLevel(.min)
FIRApp.configure()

Swift 4'te


2
FirebaseConfiguration.shared.setLoggerLevel(.min)FB 5.14
Adam Waite

4

Varsayılan olarak Firebase Analytics, üretim + hataları / uyarıları yalnızca 4 INFO satırını günlüğe kaydeder. İşler düzgün çalışıyorsa, bu çok az çıktı olmalıdır. -NoFIRAnalyticsDebugEnabled eklendiğinde yalnızca DEBUG düzeyi günlükler devre dışı bırakılır ve ERROR / WARN her zaman günlüğe kaydedilir. Herhangi bir uyarı veya hata görürseniz, muhtemelen nedeni çözmek için bir şeyler yapmanız gerekir. Uyarılar / hatalar günlüğe kaydedilirse bazı şeyler muhtemelen düzgün çalışmayacaktır. Doğru ayarlanmış uygulama hataları / uyarıları kaydetmemelidir.

FIRInstanceID / * ile etiketlenen mesajlar, Firebase Bildirimi tarafından günlüğe kaydedilir ve hatalar / uyarılar her zaman günlüğe kaydedilir.


3

Djabi'nin dediği gibi, bu günlükleri INFO, WARNING veya ERROR ise devre dışı bırakamazsınız.

Yorum yapamadığım için Nitin Gohel'in cevabına eklemek istiyorum: FirebaseAppDelegateProxyEnabled bayrağı günlükleri devre dışı bırakmak için değil. Bunu kapatırsanız, otomatik kampanya izlemeyi kaybedersiniz ve URL'yi ve kullanıcı etkinliğini kendiniz işlemek için FIRAnalytics'ten (AppDelegate) yöntemler eklemeniz gerekir.


3

Alex'in cevabına eklemek için https://firebase.google.com/docs/cloud-messaging/ios/client adresinden

FirebaseAppDelegateProxyEnabled uygulamanızın temsilcisinin yöntemlerini değiştirmek içindir

FCM API, iki temel alanda yöntem değişimini gerçekleştirir: APNs belirtecinizi FCM kayıt belirteciyle eşleme ve aşağı akış ileti geri arama işlemi sırasında analitik verileri yakalama. Kullanım swizzling etmemeyi tercih Geliştiriciler bayrak ekleyerek devre dışı bırakabilirsiniz FirebaseAppDelegateProxyEnabled uygulamanın Info.plist dosyasının ve NO (boolean değer) olarak ayarlamayı. Kılavuzların ilgili alanları, hem yöntem geçişi etkinken hem de etkin olmadan kod örnekleri sağlar.


1

Sanırım büyük ve çok önemli bir kafa karışıklığı var.

Kullanarak -FIRDebugDisabledo olacak ayıklama modunu devre dışı ardından ölçümleri test ve geliştirme sırasında etkilenecektir .

Günlükleri azaltmak için:

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

Ancak 6.18 ve 6.20 sürümlerinde bir hata var.

Çözüm olarak, -noFIRAnalyticsDebugEnabledhangisinin farklı bir şey olduğunu kullanabilirsiniz, bu , hata ayıklama modunuzu devre dışı bırakmaz .


ilk hata 8 Ağustos 2019'da oluşturuldu ve henüz düzeltilmedi :( umarım yakında düzeltirler. Başka bir araca
geçmeyi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.