gpt4 book ai didi

java - Spring Boot 应用程序引擎日志格式不正确

转载 作者:行者123 更新时间:2023-12-02 09:43:00 24 4
gpt4 key购买 nike

我已经在 appengine 上部署了一个 Spring Boot 2 应用程序,并且效果非常好。

唯一的问题是标准日志机制与 gcp 日志系统发生冲突。我得到的是数百条信息日志,即使抛出异常或警告也是如此。

logs

我认为问题在于日志非常长并且以一些不必要的数据开始。

在我的配置中,我使用 lombok+Slf4j 登录我的应用程序,并且我认为默认情况下会启用 logback,因为我已经安装了 spring-boot-starter-web。

我的 pom 有这些依赖项:

   <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-data-datastore</artifactId>
</dependency>

<!--Standard dep-->

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>${appengine.target.version}</version>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client-appengine</artifactId>
<version>1.29.2</version>
</dependency>

<!--Provided-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

<!--Test related-->

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

在资源文件夹中,我有logging.properties文件,如spring boot page for app engine中建议的那样。 (避免启动过程中出现堆栈溢出错误)

唯一的区别是,如果我排除 jul-to-slf4j,我将不会在控制台中看到任何日志。

任何关于 logback/spring boot 的专家都可以为我指出正确的方向吗?

最佳答案

将 logback.xml 文件添加到项目的资源文件夹中。 Spring Boot 将在启动时加载它,并且它将覆盖与 Spring Boot 捆绑的默认 logback 配置。

在 logback.xml 中,您可以定义自己的日志记录模式并删除不必要的数据。

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>

上面的示例不会包含日志模式中的时间戳或线程。您可以更改此设置以适合您的特定用例。

更新

或者,您可以通过应用程序属性覆盖日志模式来实现此目的。

用于控制台日志记录

logging.pattern.console=%-5level %logger{36} - %msg%n

用于文件记录

logging.pattern.file=%-5level %logger{36} - %msg%n

您可以在此处找到有关日志记录模式各部分含义的解释: https://logback.qos.ch/manual/layouts.html#conversionWord

关于java - Spring Boot 应用程序引擎日志格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56907355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com