【问题标题】:NodeJS: How Is Logging Enabled for the @grpc/grpc.js PackageNodeJS:如何为 @grpc/grpc.js 包启用日志记录
【发布时间】:2020-03-30 16:19:26
【问题描述】:

在 NodeJS 中创建 GRPC 客户端时,如果我使用 grpc package,我可以将 GRPC_VERBOSITY 设置为 debug 环境变量来启动我的程序。

$ GRPC_VERBOSITY=debug node index.js

我会得到大量关于正在发生的网络通信的信息。

但是,如果我切换实现并使用 @grpc/grpc-js 包,GRPC_VERBOSITY=debug 无效。

我查看了实现@grpc/grpc-js 的底层打字稿,我看到了logging calls 的样子。

所以我的问题是:如何在使用带有 NodeJS 的 @grpc/grpc-js NPM 包时启用日志记录

【问题讨论】:

    标签: node.js grpc grpc-js


    【解决方案1】:

    可以看到here:

    if (process.env.GRPC_VERBOSITY) {
      switch (process.env.GRPC_VERBOSITY) {
        case 'DEBUG':
          _logVerbosity = LogVerbosity.DEBUG;
          break;
        case 'INFO':
          _logVerbosity = LogVerbosity.INFO;
          break;
        case 'ERROR':
          _logVerbosity = LogVerbosity.ERROR;
          break;
        default:
        // Ignore any other values
      }
    }
    

    GRPC_VERBOSITY=DEBUG设置为大写

    另外,根据this,你必须设置GRPC_TRACE来指定你想看什么样的日志。要查看所有日志,您可以将其设置为all

    所以,在你的情况下,命令变成了

    GRPC_VERBOSITY=DEBUG GRPC_TRACE=all node index.js
    

    【讨论】:

    • 感谢您回复 Ayush,我很感激。但是,使用GRPC_VERBOSITY=DEBUG node index.js 和@grpc/grpc-js 运行我的程序不会导致任何输出被发送到控制台,而使用GRPC_VERBOSITY=debuggrpc 会导致输出被发送到控制台。因此,这个答案虽然包含有用的信息,但并不能回答我的问题。
    • 可以根据this试试GRPC_VERBOSITY=DEBUG GRPC_TRACE=all node index.js吗?
    • 谢谢@ayush,GRPC_TRACE=all 是缺失的部分。有了那个和 GRPC_VERBOSITY,你就可以得到一堆日志。如果您想添加它来回答,我很乐意标记为最佳。
    • GRPC_TRACE 的可能值是什么?可以通过编程方式设置吗?
    猜你喜欢
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2015-08-31
    相关资源
    最近更新 更多