如何设置调试记录器级别以禁用写入控制台springframework和hibernate调试消息?
在我的app.yml中:
logging:
file: direct_delivery.log
level:
# root: DEBUG
springframework:
web: INFO
org:
hibernate: INFO
pattern:
file: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'
当我为root logger app启用调试级别显示所有调试消息时,我只需要检查我的消息。
UPD 我的配置文件:
@Configuration
public class AppConfig {
@Bean
public Logger logger(){
Logger log = LoggerFactory.getLogger("PlanningDirectDeliveryApplication");
return log;
}
}
答案 0 :(得分:0)
将root logger设置为WARN级别,将包设置为Debug。 Hibernate也可以写入stdout,这种方式不具备杠杆作用,你需要另外一种解决方法。
答案 1 :(得分:0)
根据您的问题,我不清楚您想要记录什么以及什么不记录,但通常,您可以为应用程序代码中的每个包单独设置日志级别,包括代码和库的代码你用。
在上面的配置文件中,您要将springframework.web
包的日志级别和org.hibernate
包的日志级别设置为INFO
。虽然Spring中不存在包springframework.web
,但这可能无效。您可能应该使用org.springframework.web
代替。
答案 2 :(得分:0)
org.hibernate
- 基本上是一个记录器名称(通常是源类名称(通常是缩写的)。弹簧包名称是错误的,所以你不要使用具有这种名称的类。这就是原因您的记录器被忽略。org.springframework
是Spring包的专有名称。
尝试设置日志记录,如:
logging:
file: direct_delivery.log
level:
root: DEBUG
org:
hibernate: INFO
springframework:
web: INFO
pattern:
file: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'
或者
logging:
file: direct_delivery.log
level:
root: DEBUG
org.hibernate: INFO
org.springframework.web: INFO
pattern:
file: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'
也许您甚至想要声明整个org.springframework
,而不仅仅是web
到DEBUG
级别。因为仅为web
设置日志记录级别,您仍然会从具有不同类源的其他spring-web
的{{1}}工件中获取日志,例如Loggers
等。