Spring引导和使用外部Tomcat进行日志记录

问题描述 投票:3回答:2

我正在外部Tomcat服务器上部署我的Spring Boot应用程序。我似乎无法使我的eclipse控制台显示我在代码中编写的日志消息:

private static final Logger log = LoggerFactory.getLogger(PersonServiceImpl.class);
...
log.info("Running...");

我设法记录所有的休眠跟踪,但仍然无法显示我添加到我的代码中的日志消息:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
logging.level.root=INFO
logging.level.org.springframework.web=INFO

catalina日志文件夹不包含我需要的已记录信息。

我该怎么办?

java spring spring-mvc logging log4j2
2个回答
0
投票

我认为,您在外部tomcat中部署Spring启动应用程序,将其打包为war文件。

您可以检查以下配置:

在你的pom.xml中

<!-- mark the embedded tomcat server as provided -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

并在包装价值:

<packaging>war</packaging>

在依赖项中,如果您使用Web启动器:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

它依赖于日志记录启动器,这意味着我们只能添加启动Web依赖性,不再需要提供日志记录组件。

在application.properties文件中,添加以下行:

logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO

之后,使用maven,您可以输入:

mvn clean package

并将其移动到您的外部tomcat:

cp target/project.war apache-tomcat-8.X.X/webapps/project.war
./apache-tomcat-8.X.X/bin/startup.sh

0
投票

请配置您的application.properties或application.yml文件 application.properties

#Logging pattern for file.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"

#output to a file 
logging.file=/path_to_file/file_name.log

#Logging pattern for console and output.
logging.pattern.console= "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
© www.soinside.com 2019 - 2024. All rights reserved.