Za każdym razem, gdy uruchamiam aplikację FireBase, rejestruje ona stan różnych funkcji Firebase. W tej chwili jest to rejestrowane:
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
Przejrzałem strąki i nie znalazłem żadnych instrukcji drukowania, więc jak inaczej mógłbym zapobiec ich rejestrowaniu w godzinach nadliczbowych, gdy uruchomię aplikację?
Odpowiedzi:
Możesz wyłączyć rejestrowanie debugowania za pomocą flagi
-FIRDebugDisabled
.Możesz dodać go do swojego schematu :
-FIRDebugDisabled
źródło
-noFIRAnalyticsDebugEnabled
została zmieniona na-FIRDebugDisabled
. Pozostałe kroki są takie same.Dodaj
FirebaseConfiguration.shared.setLoggerLevel(.min)
przed,FirebaseApp.configure()
aby uzyskać minimalną ilość logowania.func setupFirebase() { FirebaseConfiguration.shared.setLoggerLevel(.min) FirebaseApp.configure() }
źródło
Domyślnie Firebase rejestruje informacje, błędy i ostrzeżenia.
Możesz więc ustawić poziom rejestratora, którego kiedykolwiek potrzebujesz.
Jeśli ustawisz .Error, otrzymasz min log tylko wtedy, gdy pojawi się błąd.
setLoggerLevel przed FirebaseApp.configure (), jak pokazano poniżej
W Swift 2.3 i Firebase 4
FirebaseConfiguration.sharedInstance().setLoggerLevel(.Error) FirebaseApp.configure()
W Swift 3 i Firebase 4
FirebaseConfiguration.shared.setLoggerLevel(.min) FirebaseApp.configure()
źródło
W moim przypadku, aby ukryć dodatkowy fragment dziennika konsoli z Firebase, wykonałem następujące czynności:
Edycja 1 : Jak powiedział @ jesus-adolfo-rodriguez, jest to związane z Xcode. Tak więc, jeśli nie chcesz, aby OSLog był na konsoli Xcode, umieść zmienną środowiskową OS_ACTIVITY_MODE na „wyłącz” w swoim schemacie.
Edycja 2:
FirebaseConfiguration.shared.setLoggerLevel(FirebaseLoggerLevel.min) FirebaseApp.configure()
Więcej szczegółów w implementacji FIRConfiguration tutaj
Edycja 3: 2019
Według tego wydania: https://github.com/firebase/firebase-ios-sdk/issues/2774#issuecomment-482780714
Dodanie argumentu -FIRDebugDisabled i wyczyszczenie projektu załatwiło sprawę .
System logowania w Firebase
źródło
setLoggerLevel(.min)
i-FIRDebugDisabled
. Świetna odpowiedź!Swift 4 Firebase 4.10.0
Ustaw poziom rejestratora w pliku AppDelegate.swift
FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)
Oto pełny kod:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min) FirebaseApp.configure() return true }
źródło
FIRConfiguration.sharedInstance().setLoggerLevel(.min) FIRApp.configure()
W Swift 4
źródło
FirebaseConfiguration.shared.setLoggerLevel(.min)
w FB 5.14Domyślnie Firebase Analytics rejestruje tylko 4 wiersze INFO w produkcji + błędy / ostrzeżenia. To powinno być bardzo mało wydajne, jeśli wszystko działa poprawnie. Dodanie -noFIRAnalyticsDebugEnabled wyłączy tylko dzienniki poziomu DEBUG, a ERROR / WARN są zawsze rejestrowane. Jeśli widzisz jakieś ostrzeżenia lub błędy, prawdopodobnie musisz zrobić coś, aby usunąć przyczynę. Niektóre rzeczy prawdopodobnie nie będą działać poprawnie, jeśli zostaną zarejestrowane ostrzeżenia / błędy. Aplikacja, która jest poprawnie skonfigurowana, nie powinna rejestrować błędów / ostrzeżeń.
Wiadomości z tagiem FIRInstanceID / * są rejestrowane przez Powiadomienie Firebase, a błędy / ostrzeżenia są zawsze rejestrowane.
źródło
Jak powiedział djabi, nie możesz wyłączyć tych dzienników, jeśli są to INFO, WARNING lub ERROR.
Chcę dodać do odpowiedzi Nitina Gohela, ponieważ nie mogę komentować: Flaga FirebaseAppDelegateProxyEnabled nie służy do wyłączania dzienników. Jeśli ją wyłączysz, utracisz automatyczne śledzenie kampanii i będziesz musiał dodać metody z FIRAnalytics (AppDelegate), aby samodzielnie obsługiwać adresy URL i działania użytkowników.
źródło
Aby dodać do odpowiedzi Alexa, z https://firebase.google.com/docs/cloud-messaging/ios/client
FirebaseAppDelegateProxyEnabled
służy do zmiany metod delegata aplikacjiźródło
Myślę, że ma miejsce duże i bardzo ważne zamieszanie.
Użycie
-FIRDebugDisabled
go spowoduje wyłączenie trybu debugowania, który będzie miał wpływ na pomiary podczas testowania i rozwoju .Aby zmniejszyć dzienniki:
FirebaseConfiguration.shared.setLoggerLevel(.min) FirebaseApp.configure()
Jednak jest błąd w wersjach 6.18 i 6.20.
Jako obejście, które możesz zastosować,
-noFIRAnalyticsDebugEnabled
co jest inną rzeczą, ta nie wyłącza trybu debugowania.źródło