앱이 시작될 때 Firebase 상태 업데이트 로깅을 중지하는 방법


98

FireBase 앱을 시작할 때마다 다양한 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
동의합니다. 또한 메시지를 비활성화하는 방법을 찾고 있습니다.
— Gui Moura

1
방법을 찾았습니까?
— Gilian

확실히 메시지를 끄는 경우가있을 것입니다. 그 중 몇 개가 기록되는지는 중요하지 않습니다. 나는 경고와 오류를받는 것에 신경 쓰지 않지만 초기 메시지는 산만하고 의심의 여지가 없습니다.
— Jakub Truhlář

답변:


117

플래그를 사용하여 디버그 로깅을 비활성화 할 수 있습니다 -FIRDebugDisabled.

구성표에 추가 할 수 있습니다 .

  1. 구성표 선택 도구 모음
  2. 구성표 편집
  3. 실행 선택
  4. 인수를 클릭하고 추가 -FIRDebugDisabled

1
아 엔지니어들과 확인했습니다. 그 메시지는 상관없이 기록됩니다. 그래도 깃발이 있으면 그게 전부입니다.
— Ian Barber

20
A의 -noFIRAnalyticsDebugEnabled이름이 -FIRDebugDisabled. 다른 단계는 동일합니다.
— Marat Saytakov

3
별로 좋지 않습니다 (코드 리포지토리 등에 추가되지 않을 가능성이 높으므로 빌드 방법에 따라 다른 코드가 발생합니다 (실행 / 아카이브 생각)). 기본적으로 릴리스 빌드에는 로그가 꺼져 있어야합니다 ... IMHO 😎
— Jonny

1
이 중포 기지 분석을위한 디버그 모드의 회전의 무서운 부작용이있다
— Hogdotmac

62

최소한의 로깅을 달성하려면 FirebaseConfiguration.shared.setLoggerLevel(.min)전에 추가하십시오 FirebaseApp.configure().

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

이것은 일을한다!
— 카일 Goslan

3
코드 FIRConfiguration.sharedInstance ()에 업데이트 된 setLoggerLevel (30 ℃와 pH 5.5 또는 다른 pH).
— 크리 산

16

기본적으로 Firebase는 정보, 오류 및 경고를 기록합니다.
따라서 필요한 로거 레벨을 설정할 수 있습니다.
.Error를 설정하면 오류가 발생한 경우에만 최소 로그가 표시됩니다.

아래와 같이 FirebaseApp.configure () 전에 setLoggerLevel

Swift 2.3 및 Firebase 4

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

Swift 3 및 Firebase 4

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

내가 객관적 C에서이 코드를 작성할 수 있습니다 어떻게 당신이 날 감사 알려 주시기 바랍니다 수 있습니다
— 인 Yogesh 파텔

15

필자의 경우 Firebase에서 추가 콘솔 로그 청크를 숨기려면 다음을 수행했습니다.

  1. Product-> Scheme-> Edit Scheme으로 이동합니다.
  2. 환경 변수 섹션의 인수 탭에서 OS_ACTIVITY_MODE = disable을 추가하십시오.

여기에 이미지 설명 입력

  • 필요한 경우 상자를 선택 취소하면됩니다.
  • OS_ACTIVITY_MODE를 비활성화 하면 때때로 모든 예외에 대한 로그도 비활성화 됩니다.

편집 1 : @ jesus-adolfo-rodriguez가 말했듯이 이것은 Xcode와 관련이 있습니다. 따라서 Xcode 콘솔에서 OSLog를 원하지 않는 경우 OS_ACTIVITY_MODE 환경 변수를 스키마에서 "비활성화"로 설정하십시오.


편집 2 :

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

FIRConfiguration 구현에 대한 자세한 내용은 여기


편집 3 : 2019

이 문제에 따르면 : https://github.com/firebase/firebase-ios-sdk/issues/2774#issuecomment-482780714

-FIRDebugDisabled 인수를 추가 하고 프로젝트를 정리하면 트릭이 발생했습니다.

Firebase의 로깅 시스템

로깅 시스템에는 기본 모드와 디버그 모드의 두 가지 모드가 있습니다. 기본 모드에서는 로그 수준의 알림, 경고 및 오류가있는 로그 만 장치로 전송됩니다. 디버그 모드에서는 모든 로그가 장치로 전송됩니다. Firebase가 사용하는 로그 수준은 ASL 로그 수준과 일치합니다.

-FIRDebugEnabled 인수를 응용 프로그램에 전달하여 디버그 모드를 활성화합니다. 이 인수를 응용 프로그램의 Xcode 체계에 추가 할 수 있습니다. -FIRDebugEnabled를 통해 디버그 모드가 활성화되면 응용 프로그램의 추가 실행도 디버그 모드에있게됩니다. 기본 모드로 돌아가려면 응용 프로그램 인수 -FIRDebugDisabled를 사용하여 디버그 모드를 명시 적으로 비활성화해야합니다 .

FIRConfiguration 인터페이스에서 setLoggerLevel :을 호출하여 코드의 기본 로깅 수준을 변경할 수도 있습니다.


3
이 중포 기지와는 아무 상관이 없다
— 예수로드 리 게스

분석을 표시하려면 분석을 숨 깁니다. -FIRAnalyticsDebugEnabled
— DogCoffee

이것은 나를 위해 모든 로그를 비활성화했습니다. 마지막 요점에서 말했듯이.
— R. 모한

그럼에도 불구 setLoggerLevel(.min)하고 로깅 된 Firebase의 메시지를 줄이는 데 도움이되었습니다 -FIRDebugDisabled. 좋은 대답입니다!
— 킬린

4
사람들에게 모든 로깅을 비활성화하라고 말하지 마십시오.
— Claus Jørgensen

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

Swift 4에서


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

6

Swift 4 Firebase 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 개의 INFO 라인 만 기록합니다. 일이 제대로 작동한다면 출력이 거의 없을 것입니다. -noFIRAnalyticsDebugEnabled를 추가하면 DEBUG 수준 로그 만 비활성화되고 ERROR / WARN은 항상 기록됩니다. 경고 또는 오류가 표시되면 원인을 해결하기 위해 조치를 취해야합니다. 경고 / 오류가 기록되면 일부 항목이 올바르게 작동하지 않을 수 있습니다. 올바르게 설정된 앱은 오류 / 경고를 기록하지 않아야합니다.

FIRInstanceID / * 태그가 지정된 메시지는 Firebase 알림에 의해 기록되고 오류 / 경고는 항상 기록됩니다.


3

djabi가 말했듯이 INFO, WARNING 또는 ERROR 인 경우 해당 로그를 비활성화 할 수 없습니다.

내가 언급 할 수 있기 때문에 니틴 Gohel의 대답에 추가 할 : 플래그 FirebaseAppDelegateProxyEnabled는 로그를 사용하지 아닙니다. 이 기능을 끄면 자동 캠페인 추적을 잃게 되며 FIRAnalytics (AppDelegate)의 메서드를 추가하여 URL 및 사용자 활동을 직접 처리해야합니다.


3

Alex의 답변에 추가하려면 https://firebase.google.com/docs/cloud-messaging/ios/client에서

FirebaseAppDelegateProxyEnabled 앱 델리게이트의 메서드를 재구성하는 것입니다.

FCM API는 APN 토큰을 FCM 등록 토큰에 매핑하고 다운 스트림 메시지 콜백 처리 중에 분석 데이터를 캡처하는 두 가지 주요 영역에서 메서드 재구성을 수행합니다. 스위 즐링을 사용하지 않으려는 개발자 는 앱의 Info.plist 파일에 FirebaseAppDelegateProxyEnabled 플래그를 추가하고 NO (부울 값)로 설정 하여 비활성화 할 수 있습니다 . 가이드의 관련 영역에서는 메서드 재구성이 활성화 된 경우와없는 경우 모두 코드 예제를 제공합니다.


1

크고 매우 중요한 혼란이 진행되고 있다고 생각합니다.

사용하여 -FIRDebugDisabled것이다 그것을 디버그 모드 해제 후 측정 테스트 및 개발 과정에서 영향을받을 것 .

로그를 줄이려면 :

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

그러나 버전 6.18 및 6.20 에는 버그 가 있습니다.

해결 방법 -noFIRAnalyticsDebugEnabled으로 다른 것을 사용할 수 있지만 이 방법 은 디버그 모드를 비활성화하지 않습니다 .


2019 년 8 월 8 일에 생성 된 첫 번째 버그이며 아직 수정되지 않았습니다. (곧 수정되기를 바랍니다. 다른 도구로 이동하려고 생각 중입니다.이 로그는 매우 스팸입니다
— rgkobashi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.