使用外部Tomcat进行Spring Boot和记录仅输出启动日志

时间:2018-09-23 14:25:47

标签: spring-boot tomcat

我的Spring boot 2应用程序在运行时未显示任何日志消息。我只能看到启动日志。该应用程序作为WAR部署在生产服务器中,我将日志配置为输出到文件:

logging.file = app.log
logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
logging.pattern.console= %d{yyyy-MM-dd HH:mm:ss} - %msg%n

在本地我可以看到我在代码中包含的任何调试消息,但是在服务器中却看不到。我只看到应用程序启动跟踪。

我的配置文件生成是官方指南提供的。以及app.war中的tomcat依赖项:

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

您是否知道发生了什么?它很奇怪。日志文件在服务器中生成(我们将其部署在docker容器中),但是在应用程序运行后,不再有日志输出到该文件。

1 个答案:

答案 0 :(得分:0)

默认情况下,Spring Boot的日志级别为INFO。

根据Spring引导日志指南79.1.1 Configure Logback for File-only Output

如果要禁用控制台日志记录并仅将输出写入文件,则需要一个自定义的logback-spring.xml,它导入file-appender.xml而不导入console-appender.xml,如以下示例所示:< / p>

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>
</configuration>

您还需要将logging.file添加到已添加的{.1}您的application.properties中。