앱이 시작될 때 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.