簡體   English   中英

grpc記錄器級別

[英]grpc Logger level

我有一個應用程序(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

您可以使用google-cloud-logging-logback ,該版本可在maven-central獲得

<!-- 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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM