我有一个应用程序(Java),它严重依赖于grpc来在不同的微服务之间进行通信。问题是,在云环境中,调用服务通常无法到达目标服务。为了解决我们的问题,我们希望从grpc获得更好的调试信息。
目前,我们正在从grpc获得非常粗糙的日志信息,我们希望看到套接字级别的日志信息(例如。“和socket x交谈.”)。如何更改grpc的记录器级别?在整个系统中,我们使用slf4j进行日志记录,并且我们的netty-logging.properties在INFO.上有日志级别。
什么是好的水平?(我们正在考虑programmatically跟踪),我们应该通过每个grpc调用或者更确切地说在配置文件中更改级别吗?(这个文件是什么样的?)
发布于 2018-05-16 18:05:52
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。
发布于 2019-02-15 15:51:58
<!-- add to pom.xml dependencies -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-logging-logback</artifactId>
<version>0.80.0-alpha</version>
</dependency>然后在src/main/resources/logback.xml中打开调试或其他日志记录级别,
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration> https://stackoverflow.com/questions/50243717
复制相似问题