我已经按照指南配置了Spring Boot与tomcat一起工作: https://www.baeldung.com/spring-boot-war-tomcat-deploy。当我从IDE运行应用程序时,我可以在控制台上看到所有内容,但是在tomcat上,日志没有显示任何内容,我还配置了以下内容:
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
没有运气吗?
我的application.properites
# ===============================
# = DATA SOURCE
# ===============================
spring.datasource.url = jdbc:mysql://...
spring.datasource.username = root
spring.datasource.password = admin
# ===============================
# = JPA / HIBERNATE
# ===============================
spring.jpa.show-sql = true
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
# ==============================================================
# = Spring Security / Queries for AuthenticationManagerBuilder
# ==============================================================
spring.queries.users-query=select email, password, active from user where email=?
spring.queries.roles-query=select u.email, r.role from user u inner join user_role ur on(u.id=ur.user_id) inner join role r on(ur.role_id=r.id) where u.email=?
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
答案 0 :(得分:3)
在Spring Boot的application.properties
logging.file=../logs/mylog.log
答案 1 :(得分:1)
当您从IDE运行文件spring boot war并希望在IDE上显示日志控制台时。您必须编辑文件pom.xml:
首先。您必须排除spring-boot-starter-logging
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
**<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>**
</exclusions>
</dependency>
第二。您添加依赖项logback-classic和jcl-over-slf4j
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
我成功了,我在IDE控制台上看到了日志。
答案 2 :(得分:1)
我遇到了同样的问题,所以我认为如果有人遇到同样的情况,我的回答会很有帮助。
创建springboot应用程序时,我们忘记在主类中扩展 SpringBootServletInitializer 。没有这个,就不会在您的应用程序和tomcat容器之间进行servlet上下文绑定。这就是为什么尽管战争爆发了,但实际上并未部署应用程序,因此没有应用程序日志。在这里https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/web/servlet/support/SpringBootServletInitializer.html
中查找更多详细信息@EnableSwagger2
@SpringBootApplication
@EnableJpaRepositories("com.scn.scheduler.dal")
@EnableScheduling
public class SCNSchedulerApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SCNSchedulerApplication.class, args);
}
}
答案 3 :(得分:0)
在应用程序属性中使用以下答案是正确的:
logging.file=../logs/mylog.log
,但是没有提及为什么没有消息打印到catalina.log。完整的答案来自spring boot文档:
默认情况下,Spring Boot仅记录到控制台,不写 日志文件。如果要除控制台外还写日志文件 输出,您需要设置logging.file或logging.path属性(用于 例如,在您的application.properties中。)
答案 4 :(得分:0)
通过在application.properties
中添加以下属性为我工作
logging.file.name = ${catalina.base}/logs/${service.name}.log