アプリの起動時に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

ポッドを調べましたが、printステートメントが見つかりませんでした。アプリを実行している間、これらのログが記録されないようにするには、他にどのようにしたらよいでしょうか。


3
仰るとおりです。メッセージを無効にする方法も探しています。
Gui Moura

1
メソッドは見つかりましたか?
ギリアン

メッセージをオフにするケースは間違いなくあるはずです。ログに記録される数は問題ではありません。警告やエラーが発生してもかまいませんが、最初のメッセージが邪魔になることは間違いありません。
JakubTruhlář17年

回答:


117

フラグでデバッグログを無効にすることができ-FIRDebugDisabledます。

あなたのスキームに追加することができます:

  1. スキームツールバーを選択
  2. スキームを編集
  3. 実行を選択
  4. 引数をクリックして追加 -FIRDebugDisabled

1
ああ、私はエンジニアにチェックインしました-それらのメッセージは関係なく記録されます。でも旗があれば、それだけです。
Ian Barber

20
A -noFIRAnalyticsDebugEnabledはに名前が変更されました-FIRDebugDisabled。他の手順は同じです。
Marat Saytakov、2017年

3
あまりよくない(これはおそらくコードリポジトリなどに追加されないため、ビルド方法によっては異なるコードが発生する(実行/アーカイブなど))。デフォルトでは、リリースビルドのログはオフになっているはずです...私見
ジョニー

1
これには、
Firebase

62

ロギングの最小量を達成するためにFirebaseConfiguration.shared.setLoggerLevel(.min)FirebaseApp.configure()に追加します。

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

これでうまくいきます!
カイルゴスラン2017

3
コードがFIRConfiguration.sharedInstance()。setLoggerLevel(.min)に更新されました
Chrishan

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()

私はObjective Cの中に、このコードを書くことができますどのように私はあなたに感謝教えてくださいすることができます
ヨーゲッシュパテル

15

私の場合、Firebaseからコンソールログの余分なチャンクを非表示にするために、次のことを行いました。

  1. 製品->スキーム->スキームの編集に移動します。
  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のロギングシステム

ロギングシステムには、デフォルトモードとデバッグモードの2つのモードがあります。デフォルトモードでは、ログレベルがNotice、Warning、Errorのログのみがデバイスに送信されます。デバッグモードでは、すべてのログがデバイスに送信されます。Firebaseが使用するログレベルは、ASLログレベルと一致しています。

-FIRDebugEnabled引数をアプリケーションに渡して、デバッグモードを有効にします。この引数は、アプリケーションのXcodeスキームに追加できます。-FIRDebugEnabledを使用してデバッグモードを有効にすると、アプリケーションの以降の実行もデバッグモードになります。デフォルトモードに戻すには、アプリケーション引数-FIRDebugDisabledでデバッグモードを明示的に無効にする必要があります。

FIRConfigurationインターフェイスでsetLoggerLevel:を呼び出すことにより、コードでデフォルトのログレベルを変更することもできます。


3
これはfirebaseとは関係ありません
イエスロドリゲス

表示したい場合は分析を非表示にします-FIRAnalyticsDebugEnabled
DogCoffee

これにより、すべてのログが無効になりました。あなたが最後のポイントで言ったように。
R. Mohan

これはsetLoggerLevel(.min)、とにかかわらず記録されたFirebaseからのメッセージを減らすのに役立ちました-FIRDebugDisabled。正解です。
kelin

4
すべてのロギングを無効にするように人々に告げるのをやめてください。
クラウスヨルゲンセン


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を追加すると、デバッグレベルのログのみが無効になり、ERROR / WARNが常にログに記録されます。警告またはエラーが表示された場合は、原因を解決するために何かを行う必要があります。警告/エラーがログに記録されると、いくつかのことが正しく機能しない可能性があります。正しく設定されているアプリは、エラー/警告をログに記録しないでください。

FIRInstanceID / *でタグ付けされたメッセージはFirebase Notificationによってログに記録され、エラー/警告は常にログに記録されます。


3

djabiが言ったように、INFO、WARNING、またはERRORのログは無効にできません。

私はコメントすることはできませんので、ニティンGohelの答えに追加する:フラグFirebaseAppDelegateProxyEnabledは、ログを無効にするためではありません。オフにすると、自動キャンペーントラッキングが失われ、URLとユーザーアクティビティを自分で処理するためにFIRAnalytics(AppDelegate)からメソッドを追加する必要があります。


3

アレックスの回答に追加するには、https://firebase.google.com/docs/cloud-messaging/ios/clientから

FirebaseAppDelegateProxyEnabled アプリデリゲートのメソッドをスウィズルするためのものです

FCM APIは、APNsトークンをFCM登録トークンにマッピングすることと、ダウンストリームメッセージコールバック処理中に分析データをキャプチャすることの2つの重要な領域でメソッドスウィズルを実行します。スウィズリングの使用を望まない開発者は、アプリのInfo.plistファイルにフラグFirebaseAppDelegateProxyEnabledを追加し、それをNO(ブール値)に設定することで、スウィズリングを無効にできます。ガイドの関連領域には、メソッドのスウィズリングを有効にした場合と有効にしない場合の両方のコード例が示されています。


1

大きな混乱が起こっていると思います。

使用することで-FIRDebugDisabled、それがされますデバッグモードを無効その後、あなたの測定は、テストと開発の間に影響を受けることになりますが

ログを減らすには:

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

ただし、バージョン6.18および6.20 にはバグがあります。

別の方法として使用できる回避策として-noFIRAnalyticsDebugEnabled、これデバッグモードを無効にしません


最初のバグは2019年8月8日に作成され、まだ修正されていません:(うまくいけば、すぐに修正されます。別のツールへの移行を
検討して
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.