我有一个应用程序(Java),它严重依赖 grpc 在不同的微服务之间进行通信。问题在于,在云环境中,调用服务经常无法到达其目标服务。
为了解决我们的问题,我们希望从 grpc 获得更好的调试信息。
目前,我们从 grpc 获得非常粗略的日志信息,我们希望看到套接字级别的日志信息(例如“与套接字 x 对话......”)。
我们如何更改 grpc 的记录器级别?在整个系统中,我们使用 slf4j 进行日志记录,我们的 netty-logging.properties 在 INFO 具有日志记录级别。
什么是好的水平? (我们正在考虑 TRACE )我们应该 以编程方式 在每次 grpc 调用时更改级别,还是在 配置文件 中更改级别?(这个文件会是什么样子?)
最佳答案
gRPC Java 日志通过 JDK 的内置 java.util.logging
类输出(搜索“java.util.logging”会出现很多关于配置这些日志级别的教程和 StackOverflow 问题)。日志级别可以通过编程方式设置,但典型的用法是从配置文件加载更好的服务。以下示例 logging.properties
将打开详细 gRPC 日志记录:
handlers=java.util.logging.ConsoleHandler
io.grpc.level=FINE
java.util.logging.ConsoleHandler.level=FINE
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
您需要将此文件的位置作为 JVM 标志提供,例如,使用命令行标志
-Djava.util.logging.config.file=logging.properties
。
关于logging - grpc 记录器级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50243717/