java - Spring Boot 和使用外部 Tomcat 进行日志记录

标签 java spring spring-mvc logging log4j2

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

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

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

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 日志文件夹不包含我需要的记录信息。

我该怎么办?

最佳答案

我认为,您将 spring boot 应用程序部署在外部 tomcat 中,并将其打包为 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>

包装值(value):

<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

关于java - Spring Boot 和使用外部 Tomcat 进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47977510/

相关文章:

java - JPA:映射交叉的 OneToOne 和 ManyToOne 关系

java - 尝试创建新的 Spring Starter 项目时出错

java - 当 validator 发现表单错误时,表单页面将在 POST url 处重新显示

java - Spring - 如何从 BindingResult 中删除 `FieldError`?

java - 如何处理 org.hibernate.ObjectNotFoundException

java - Bukkit ConfigurationSection getKeys

java - 在 java 上通过模 m 实现的斐波那契数给出除法的负余数

c# - 什么是编程语言的反射属性?

java - ThreadPoolExecutor 中的 allowCoreThreadTimeout( ) 有什么用?

java - UPI交易ID是如何生成的