Spring Boot应用在Docker容器中无法生成Tomcat访问日志
Spring Boot Docker容器内Tomcat自定义访问日志无法生成问题
我有一个Spring Boot应用,本地运行时嵌入式Tomcat能正常生成自定义访问日志,但部署到Docker容器后无法生成该日志文件。
自定义日志配置类
@Configuration public class LoggingConfiguration { @Bean public WebServerFactoryCustomizer<TomcatServletWebServerFactory> connectorCustomizer(final AccessLogProperties accessLogProperties) { return tomcat -> { final JsonAccessLogValve logValve = new JsonAccessLogValve(); logValve.setEnabled(accessLogProperties.isEnabled()); logValve.setBuffered(accessLogProperties.isBuffered()); logValve.setRenameOnRotate(accessLogProperties.isRenameOnRotate()); logValve.setRotatable(accessLogProperties.isRotate()); logValve.setPrefix(accessLogProperties.getPrefix()); logValve.setSuffix(accessLogProperties.getSuffix()); logValve.setPattern(accessLogProperties.getPattern()); tomcat.addContextValves(logValve); }; } }
日志相关配置(application.yml)
... json-access-log: enabled: true buffered: false pattern: "%{yyy-MM-dd'T'hh:mm:ssZ}t %I %l %u %a %r %q %s (%D ms) %{Authorization}i" rename-on-rotate: true rotate: true prefix: chalkup-${ACTIVE_APP_ENVIRONMENT} suffix: .access ...
本地运行表现
本地在IntelliJ中运行时,项目根目录下的./logs文件夹会生成chalkup-local.access文件,日志内容正常写入。
Docker相关配置
Dockerfile
FROM eclipse-temurin:21-alpine ADD ./target/chalkup-*.jar chalkup.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/chalkup.jar"]
Docker Compose配置
chalk-up: container_name: chalk-up build: dockerfile: Dockerfile context: . environment: ACTIVE_APP_ENVIRONMENT: test entrypoint: - java - -agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n - -Djava.security.egd=file:/dev/./urandom - -jar - /chalkup.jar - -Dspring.profiles.active=local volumes: - /tmp/logs:/logs ports: - "8080:8080" - "5005:5005" depends_on: - wiremock
容器内运行问题
容器启动后,查看容器内/logs目录,仅能看到常规日志文件,自定义的访问日志文件完全缺失。
已尝试的无效解决方案
- 修改Tomcat的
basedir配置为. - 调整容器目录读写权限
- 配置原生Tomcat访问日志(如下),容器内依然无法生成日志:
server: tomcat: basedir: . accesslog: enabled: true
临时解决方案
目前通过继承JsonAccessLogValve类并重写log方法,将日志内容直接输出到Slf4j日志中,绕过文件生成问题。
内容的提问来源于stack exchange,提问作者Jaavaaan
相关产品推荐
相关产品推荐

