启动应用程序时如何停止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
您找到方法了吗?
吉利安

绝对应该有一种关闭消息的情况。无论记录多少,都没有关系。我不介意收到警告和错误,但是毫无疑问,最初的消息会分散注意力。
雅各布·特鲁拉(JakubTruhlář)'17年

Answers:


117

您可以使用标志禁用调试日志记录-FIRDebugDisabled

您可以将其添加到您的方案中

  1. 选择方案工具栏
  2. 编辑方案
  3. 选择运行
  4. 单击参数并添加 -FIRDebugDisabled

1
嗯,我已与工程师签到-无论如何,这些消息都会被记录下来。尽管带有标志,这就是您应该看到的全部。
伊恩·巴伯

20
将A -noFIRAnalyticsDebugEnabled重命名为-FIRDebugDisabled。其他步骤相同。
Marat Saytakov

3
效果不是很好(这可能不会添加到代码存储库等中,因此会根据生成方法而导致生成不同的代码(请考虑运行/归档))。默认情况下,发行版本应具有关闭日志记录……恕我直言
Jonny

1
这具有为
Firebase

62

在添加FirebaseConfiguration.shared.setLoggerLevel(.min)之前,FirebaseApp.configure()以实现最小量的日志记录。

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

做到了!
凯尔·戈斯兰

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

我如何在目标c中编写此代码,您能告诉我谢谢吗
Yogesh Patel

15

为了从Firebase隐藏额外的控制台日志,我做了以下工作:

  1. 导航到产品->方案->编辑方案。
  2. 在“环境变量”部分的“参数”选项卡下,添加OS_ACTIVITY_MODE = disable

在此处输入图片说明

  • 万一您需要它,只需取消选中该框即可。
  • 禁用OS_ACTIVITY_MODE有时也会禁用所有异常的日志

编辑1:正如@ jesus-adolfo-rodriguez所说,这与Xcode有关。因此,如果您不想在Xcode控制台上使用OSLog,请在方案中将OS_ACTIVITY_MODE环境变量设置为“ disable”。


编辑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
这与火力场无关
Jesus Rodriguez

并会隐藏您的分析数据(如果您希望它们显示出来)-FIRAnalyticsDebugEnabled
DogCoffee

这为我禁用了所有日志。正如您在最后一点所说。
R. Mohan

它帮助我减少其火力地堡被记录,尽管消息setLoggerLevel(.min)-FIRDebugDisabled。好答案!
凯琳

4
停止告诉人们禁用所有日志记录。
克劳斯·约根森

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

在Swift 4中


2
FirebaseConfiguration.shared.setLoggerLevel(.min)在FB 5.14中
亚当·怀特

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。如果看到任何警告或错误,则可能需要执行某些操作来解决原因。如果记录了警告/错误,则某些事情可能无法正常工作。正确设置的应用程序不应记录错误/警告。

Firebase Notification记录带有FIRInstanceID / *标记的消息,并且始终记录错误/警告。


3

正如djabi所说,如果这些日志是INFO,WARNING或ERROR,则不能禁用它们。

我想补充一下Nitin Gohel的答案,因为我无法发表评论:FirebaseAppDelegateProxyEnabled标志不是用于禁用日志的。如果将其关闭,您将失去自动广告系列跟踪,并且需要添加FIRAnalytics(AppDelegate)中的方法来自己处理URL和用户活动。


3

要添加到Alex的答案中,请访问https://firebase.google.com/docs/cloud-messaging/ios/client

FirebaseAppDelegateProxyEnabled 用于混淆应用程序委托的方法

FCM API在两个关键区域执行方法混乱:将APNs令牌映射到FCM注册令牌,以及在下游消息回调处理期间捕获分析数据。不想使用混乱的开发人员可以通过在应用程序的Info.plist文件中添加标志FirebaseAppDelegateProxyEnabled并将其设置为NO(布尔值)来禁用它。指南的相关区域提供了代码示例,无论启用还是不启用方法转换都有效。


1

我认为这是一个很大且非常重要的混乱。

通过使用-FIRDebugDisabled它,将禁用调试模式,这将在测试和开发期间影响您的测量

减少日志:

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

但是在版本6.18和6.20上存在错误

作为可以使用的替代方法,-noFIRAnalyticsDebugEnabled这是另一回事,它不会禁用调试模式。


。第一个错误在2019年8月8日创建,并没有锁定尚未:(希望他们尽快修复它我们已经移动到另一个工具一直在想,这个记录是非常垃圾
rgkobashi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.