【问题标题】:How to set log level for Firestore?如何设置 Firestore 的日志级别?
【发布时间】:2018-07-18 08:28:11
【问题描述】:

如何设置 Firestore 的日志级别?

根据文档here,我应该使用 setLogLevel 方法,但在 Firestore 客户端对象上看不到方法,例如 FirestoreClient.getFirestore()

【问题讨论】:

  • 您说的是 Java SDK 中的 FirestoreClient?
  • 是的,那个环境。我现在看到我指出的文档是针对 JavaScript 的。反正就是找不到了。它使用默认设置生成大量日志。

标签: java firebase google-cloud-firestore firebase-admin


【解决方案1】:

Java Server SDK for Firestore 目前没有日志记录功能。 Firestore 支持登录所有移动客户端(Android、iOS 和 Web)以及 Node Server SDK。

【讨论】:

  • 当我运行时,我得到很多这样的行 2018-02-08 00:16:46,098 DEBUG [grpc-default-worker-ELG-2-3] (io.netty.util.internal.logging.Slf4JLogger:86) - [id: 0x1f4aec1c, L:/192.168.1.70:50470 - R:firestore.googleapis.com/216.58.211.202:443] OUTBOUND SETTINGS: ack=false settings={ENABLE_PUSH=0, MAX_CONCURRENT_STREAMS=0, INITIAL_WINDOW_SIZE=1048576, MAX_HEADER_LIST_SIZE=8192}
  • 这些是低级 gRPC 日志。你是如何设法启用它们的?如果刚刚发生这种情况,您的环境中可能安装了logging.properties 文件。你必须找到它,并相应地更新它。
  • 我不确定。我正在使用 log4j 记录器。 io.netty.util 在 log4j.xml 配置文件中设置为“关闭”,但我仍然得到这个,所以我试图在代码中设置它。
  • 那么上面的条目记录在DEBUG级别。很明显,您的环境中的某些东西启用了DEBUG 级别的日志。通常,您在运行 Firestore 客户端时不会收到任何日志。
  • 您可以通过关注Hiranya's blog post来启用Java服务器端日志记录
【解决方案2】:

记录了大多数环境的当前版本in this gist

JavaScript

// https://firebase.google.com/docs/reference/js/firebase.firestore.Firestore#setLogLevel
firebase.firestore.setLogLevel('debug');

Node.js

// https://firebase.google.com/docs/reference/js/firebase.firestore.Firestore#setLogLevel
firebase.firestore.setLogLevel('debug');

安卓

// See https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore.html#setLoggingEnabled(boolean)
FirebaseFirestore.setLoggingEnabled(true);

斯威夫特

// https://firebase.google.com/docs/reference/swift/firebasefirestore/api/reference/Classes/Firestore#enablelogging_
Firestore.enableLogging(true)

Java 管理 SDK

使用SLF4J(Java 的内置外观记录器),如Hiranya's blog post 中所述。

1) 将slf4j-simple 绑定添加到应用程序类路径 2)设置-Dorg.slf4j.simpleLogger.defaultLogLevel=debug系统属性

GCP 环境

# See https://medium.com/@hiranya911/logging-in-java-libraries-for-firebase-and-google-cloud-platform-f8742493b73f

.level=INFO
com.google.firebase.level=FINE
java.util.logging.SimpleFormatter.format='%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n'

【讨论】:

    【解决方案3】:

    对于那些最终尝试更改 JS Web SDK 日志级别的人:

    firebase.firestore.setLogLevel("debug");    // "debug" | "error" | "silent"
    

    注意 firestore 后缺少 (),而不是:

    firebase.firestore().settings(/*...*/)
    

    【讨论】:

      【解决方案4】:

      对于 Angular-CLI,将其添加到您的 app.module.ts 文件中:

      import * as firebase from 'firebase/app';
      import 'firebase/firestore';
      firebase.firestore.setLogLevel('debug');
      

      reference

      【讨论】:

        【解决方案5】:

        对于 firebase-firestore:21.1.1 使用此行:

        FirebaseFirestore.setLoggingEnabled(true);
        

        Further Reference

        【讨论】:

          猜你喜欢
          • 2020-05-11
          • 1970-01-01
          • 1970-01-01
          • 2012-05-04
          • 2017-10-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-23
          • 1970-01-01
          相关资源
          最近更新 更多