gpt4 book ai didi

Spring-Boot Embedded Tomcat - 生成localhost.log和cataline.out文件

转载 作者:行者123 更新时间:2023-11-28 21:48:24 30 4
gpt4 key购买 nike

我有一个使用嵌入式 tomcat 运行的 spring-boot 应用程序。我们使用 logback 和 slf4j 进行日志记录。

我正在尝试找出通过 spring-boot 应用程序生成 catalina.out 和 localhost.log 文件的方法。看起来 catalina.out 是由在独立模式下启动 tomcat 容器的启动脚本生成的,catalina.out 文件不是在使用嵌入式 tomcat 的 spring-boot 应用程序中生成的。

localhost.log 文件怎么样?这同样适用于 localhost.log 文件吗?

另外,如何通过 spring-boot 应用程序中的 logback/slf4j 绑定(bind)更改嵌入式 tomcat 的日志级别。

有什么建议吗?

最佳答案

你必须像这样在spring boot中手动配置tomcat容器

你必须创建EmbeddedServletContainerFactory的bean并配置登录tomcat容器,下面是示例代码(我没有测试它,但它可能会运行)。

tomcat 现在自动搜索类路径中的 logback-access.xml 文件并配置日志记录

对于 Spring boot 版本 < 2.0.0

@SpringBootApplication
public class ABCApplication {


@Bean
public EmbeddedServletContainerFactory servletContainer() {

TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();


LogbackValve logbackValve = new LogbackValve();

logbackValve.setFilename("logback-access.xml");


tomcat.addContextValves(logbackValve);


return tomcat;
}


public static void main(String[] args) {
SpringApplication.run(ABCApplication.class, args);
}
}

EmbeddedServletContainerFactory 被 TomcatServletWebServerFactory 替换为 spring boot version 2.0.0,所以使用 required factory 来配置 tomacat。

现在您可以像这样提供您的 logback-access.xml

  <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%h %l %u %t &quot;%r&quot; %s %b</pattern>
</encoder>
</appender>

<appender-ref ref="STDOUT" />

</configuration>

可以在xml中添加appender来记录tomcat登录文件。

你必须看看 LogbackValve

您必须为 LogbackValve 添加以下依赖项

   <dependency>
<groupId>net.rakugakibox.spring.boot</groupId>
<artifactId>logback-access-spring-boot-starter</artifactId>
</dependency>

希望对 jagamot 有所帮助!

关于Spring-Boot Embedded Tomcat - 生成localhost.log和cataline.out文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51296752/

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