在简单的示例项目中更改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处理日志路由juljcllog4j ,并通过slf4j使用Logback ,正如你可以通过可区分的缩写命名空间类名来判断的那样。

通过直接在pom文件上的IntelliJ图工具可以很好地看到所有这些:

在此处输入图像描述

此设置遵循SLF4J站点中描述/描述的最佳实践:

slf4j网桥设置 -  logback实现

由于Spring DEBUG级别,日志很繁琐。 改变这种情况:

1)在/src/main下创建一个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']