您如何告诉Spring Boot将嵌入式Tomcat的访问日志发送到stdout? [英] How do you tell Spring Boot to send the embedded Tomcat's access logs to stdout?

查看:208
本文介绍了您如何告诉Spring Boot将嵌入式Tomcat的访问日志发送到stdout?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在独立的Spring Boot Web应用程序(可执行jar)中,如何告诉Spring Boot我们希望将嵌入式Tomcat实例的HTTP访问日志发送到stdout?

In a standalone Spring Boot web application (executable jar), how do you tell Spring Boot that we want the embedded Tomcat instance's HTTP access logs to be sent to stdout?

推荐答案

如果使用Logback,则可以使用 logback-访问.

If you use Logback, you can use logback-access for this.

添加依赖项ch.qos.logback:logback-access

添加TeeFilter的可选Javaconfig(请求和响应日志记录):

Optional Javaconfig to add TeeFilter (request & response logging):

@Bean(name = "TeeFilter")
public Filter teeFilter() {
    return new ch.qos.logback.access.servlet.TeeFilter();
}

用于嵌入式tomcat的Javaconfig:

Javaconfig for embedded tomcat:

@Bean
public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();

    // put logback-access.xml in src/main/resources/conf
    tomcat.addContextValves(new LogbackValve());

    return tomcat;
}

logback-access.xml的内容(保存在src/main/resources/conf中)

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <Pattern>combined</Pattern>
      <Pattern>%fullRequest%n%n%fullResponse</Pattern>
    </encoder>
  </appender>

  <appender-ref ref="STDOUT" />

</configuration>

这篇关于您如何告诉Spring Boot将嵌入式Tomcat的访问日志发送到stdout?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆