在简单的示例项目中更改Spring框架日志级别?
在遵循这个 Spring示例时,我希望看到这样的输出:
Creating tables Inserting customer record for John Woo Inserting customer record for Jeff Dean ...
相反,我在每一行之间散布了一些DEBUG
日志消息:
Creating tables 12:31:16.474 [main] DEBUG osjdbc.core.JdbcTemplate - Executing SQL statement [drop table customers if exists] 12:31:16.484 [main] DEBUG osjdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource 12:31:16.484 [main] DEBUG osjdSimpleDriverDataSource - Creating new JDBC Driver Connection to [jdbc:h2:mem] ...
这些 不同的 答案似乎表明可以通过更改log4j.properties
文件中的日志级别来解决此问题。 但是,在Spring示例中,从未提及过log4j.properties
文件。
有趣的是,Spring似乎在内部使用了log4j
:
$ grep -R "log4j" * Binary file build/libs/gs-relational-data-access-0.1.0.jar matches
我想我可以使用log4j
来解决这个问题,但是手册似乎没有关于将log4j.properties
放在何处或者如何将它集成到这个项目中的信息。
如何更改日志级别以删除这些DEBUG
语句?
如果我需要使用log4j.properties
文件,我在哪里放置它? 我需要将它绑定到我的build.gradle
文件,还是以某种方式在我的.java
文件中引用它?
这是Spring Boot
的工作, Logback
通过slf4j
处理日志路由jul
, jcl
和log4j
,并通过slf4j
使用Logback
,正如你可以通过可区分的缩写命名空间类名来判断的那样。
通过直接在pom文件上的IntelliJ图工具可以很好地看到所有这些:
此设置遵循SLF4J站点中描述/描述的最佳实践:
由于Spring DEBUG
级别,日志很繁琐。 改变这种情况:
1)在
下创建一个resources
目录,就像在Maven项目中一样。 2)在其中创建一个logback.xml
文件,其中包含:
web - %date [%thread] %-5level %logger{36} - %message%n
瞧!
Creating tables Inserting customer record for John Woo Inserting customer record for Jeff Dean Inserting customer record for Josh Bloch Inserting customer record for Josh Long Querying for customer records where first_name = 'Josh': Customer[id=3, firstName='Josh', lastName='Bloch'] Customer[id=4, firstName='Josh', lastName='Long']