我设置了一个带有几个映像的dockerized环境:
我已经配置了Tomcat来激活管理器webapp,这样我就可以使用Maven货插件来部署Spring应用程序。部署工作的意义似乎是货物正确地将我的war上传给经理。不幸的是,它不会编写应用程序日志,而且应用程序也无法工作(当然,查看日志来找出原因是很好的,对吧?)
这是我的docker-compose.yml文件的相关部分。我的日志目录指向我的主机系统上的一个卷。
services:
tomcat:
container_name: tomcat
image: tomcat:10.0-jdk11-openjdk
restart: always
ports:
- "8080:8080"
networks:
static:
ipv4_address: 192.168.20.10
volumes:
- '/home/jason/development/projects/docker/java-dev-environment/volumes/tomcat/usr_local_tomcat_conf:/usr/local/tomcat/conf'
- '/home/jason/development/projects/docker/java-dev-environment/volumes/tomcat/usr_local_tomcat_webapps:/usr/local/tomcat/webapps'
- '/home/jason/development/projects/docker/java-dev-environment/volumes/tomcat/usr_local_tomcat_logs:/usr/local/tomcat/logs'下面是logback.xml文件(位于Spring应用程序的src/main/resources目录中):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOGS" value="/usr/local/tomat/logs/gliese" />
<include resource="org/springframework/boot/logging/logback/base.xml" />
<appender name="Console"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
</Pattern>
</layout>
</appender>
<appender name="RollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/gliese.log</file>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
</encoder>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily and when the file reaches 10 MegaBytes -->
<fileNamePattern>${LOGS}/gliese-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<!-- LOG everything at INFO level -->
<root level="info">
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</root>
</configuration>通过我的阅读,这应该可以将应用程序输出直接指向/usr/local/tomcat/logs的子目录,我已经确认该子目录存在(在主系统上)。
有人知道为什么我没有看到gliese.log文件吗?我在猫主人的容器里搜寻过它,以防它去别的地方,但没有运气。
发布于 2022-04-14 21:48:40
除非使用SpringBoot3.0(还没有达到GA),否则应该使用Tomcat 9。Tomcat 10实现了Servlet 5规范,它将javax.servlet API重新打包为jakarta.servlet。Spring在3.0发布之前不会支持这一点。
https://stackoverflow.com/questions/71877717
复制相似问题