ska*_*kal 4 logging slf4j netty grpc-java
我有一个应用程序(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
Run Code Online (Sandbox Code Playgroud)
您需要提供此文件的位置作为 JVM 标志,例如使用命令行标志-Djava.util.logging.config.file=logging.properties。