javaspring-bootlogbackgoogle-cloud-logging

How to set to not print out DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log for google log?


I connected with google log.When I started for spring boot,the program is died.Because Too many logs print out. This is my log and error.

[grpc-nio-worker-ELG-1-4] DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log - [id: 0x6413875c, L:/xxx:58478 - R:logging.googleapis.com/142.251.42.202:443] INBOUND HEADERS: streamId=207 headers=GrpcHttp2ResponseHeaders[grpc-status: 0, content-disposition: attachment] padding=0 endStream=true
[grpc-nio-worker-ELG-1-4] DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log - [id: 0x6413875c, L:/xxx:58478 - R:logging.googleapis.com/142.251.42.202:443] OUTBOUND HEADERS: streamId=459 headers=GrpcHttp2OutboundHeaders[:authority: logging.googleapis.com:443, :path: /google.logging.v2.LoggingServiceV2/WriteLogEntries, :method: POST, :scheme: https, content-type: application/grpc, te: trailers, user-agent: grpc-java-netty/1.39.0, x-goog-api-client: gl-java/11.0.10 gccl/2.3.2 gapic/2.3.2 gax/1.66.0 grpc/1.39.0, grpc-accept-encoding: gzip, authorization: Bearer ya29.c.b0AXv0zTNJXzltMy4mjSxLeBBi5FEjdutXjFapVXcbzZAkTR3NmGbQTCas6LsKA0N2OMAwlrH45Vo2TsxXA_gnhiIkOBUFoGpmltPxKln_vVYQcXsc6ogfViKv5RfSTFdFQF9vbvIpD5WMlYNBxeLVZjczD5zqQVYHYX9MyW9dcAF8U8B3MpYiOGam5gljwxEPevleZtRrdaMT9N1XwrQOQ4akSdZFyJU, grpc-timeout: 49999860u] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false
[grpc-nio-worker-ELG-1-4] DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log - [id: 0x6413875c, L:/xxx:58478 - R:logging.googleapis.com/142.251.42.202:443] OUTBOUND DATA: streamId=261 padding=0 endStream=true length=1049 bytes=00000004140a2470726f6a656374732f64786d726f632f6c6f67732f6170706c69636174696f6e2e6c6f67121f0a076761655f61707012140a0a70726f6a6563...
[grpc-nio-worker-ELG-1-4] DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log - [id: 0x6413875c, L:/xxx:58478 - R:logging.googleapis.com/142.251.42.202:443] OUTBOUND DATA: streamId=459 padding=0 endStream=true length=1050 bytes=00000004150a2470726f6a656374732f64786d726f632f6c6f67732f6170706c69636174696f6e2e6c6f67121f0a076761655f61707012140a0a70726f6a6563...
[grpc-nio-worker-ELG-1-4] DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log - [id: 0x6413875c, L:/xxx:58478 - R:logging.googleapis.com/142.251.42.202:443] OUTBOUND DATA: streamId=457 padding=0 endStream=true length=1050 bytes=00000004150a2470726f6a656374732f64786d726f632f6c6f67732f6170706c69636174696f6e2e6c6f67121f0a076761655f61707012140a0a70726f6a6563...
[grpc-nio-worker-ELG-1-4] DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log - [id: 0x6413875c, L:/xxx:58478 - R:logging.googleapis.com/142.251.42.202:443] OUTBOUND DATA: streamId=455 padding=0 endStream=true length=1050 bytes=00000004150a2470726f6a656374732f64786d726f632f6c6f67732f6170706c69636174696f6e2e6c6f67121f0a076761655f61707012140a0a70726f6a6563...
...
java.lang.RuntimeException: com.google.cloud.logging.LoggingException: io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED: deadline exceeded after 49.999977764s. [remote_addr=logging.googleapis.com/xxx.xxx.xxx.xxx:xxx]

I sow google log document.The google recommand to use logging.properties and use io.grpc and sun.net logging level is kept at INFO level

it is recommended that io.grpc and sun.net logging level is kept at INFO level, as both these packages are used by Cloud internals and can result in verbose / initialization problems.

io.grpc.netty.level=INFO
sun.net.level=INFO

I added logging.properties and -Djava.util.logging.config.file=/path/to/logging.properties.

io.grpc.netty.level=INFO
sun.net.level=INFO

But It didn't work, still print out too many logs.

How to set to not print out "DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log"? I am using logback.

This is my logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <target>System.out</target>
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{100}.%M - %msg%n</pattern>
        </encoder>
    </appender>
    
    <appender name="CLOUD" class="com.google.cloud.logging.logback.LoggingAppender">
        <log>application.log</log> 
        <resourceType>gae_app</resourceType> 
        <credentialsFile>myfile</credentialsFile>
        <enhancer>com.example.logging.logback.enhancers.ExampleEnhancer
        </enhancer> 
        <flushLevel>WARN</flushLevel> 
    </appender>

    <root level="debug"> <!-- ☆☆ If I use debug level, The program is died -->
        <appender-ref ref="STDOUT" />
        <appender-ref ref="CLOUD" />
    </root>
</configuration>

pom.xml in relation to google log

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>libraries-bom</artifactId>
            <version>24.1.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-gcp-starter-logging</artifactId>
        <version>1.2.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-logging-logback</artifactId>
    </dependency>

Solution

  • I solved that through easy way. I only added this code in logback.xml.That is I changed log level of io.grpc.netty.shaded.io.grpc.netty to debug from info.

    <logger name="io.grpc.netty.shaded.io.grpc.netty" level="info">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="CLOUD" />
    </logger>