Java 在简单示例项目中更改Spring框架日志级别?
在下面的Spring示例中,我希望看到如下输出:Java 在简单示例项目中更改Spring框架日志级别?,java,spring,logging,spring-boot,spring-jdbc,Java,Spring,Logging,Spring Boot,Spring Jdbc,在下面的Spring示例中,我希望看到如下输出: Creating tables Inserting customer record for John Woo Inserting customer record for Jeff Dean ... 相反,我得到了一些散布在每行之间的DEBUGlog消息: Creating tables 12:31:16.474 [main] DEBUG o.s.jdbc.core.JdbcTemplate - Executing SQL statement [
Creating tables
Inserting customer record for John Woo
Inserting customer record for Jeff Dean
...
相反,我得到了一些散布在每行之间的DEBUG
log消息:
Creating tables
12:31:16.474 [main] DEBUG o.s.jdbc.core.JdbcTemplate - Executing SQL statement [drop table customers if exists]
12:31:16.484 [main] DEBUG o.s.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
12:31:16.484 [main] DEBUG o.s.j.d.SimpleDriverDataSource - Creating new JDBC Driver Connection to [jdbc:h2:mem]
...
似乎表明可以通过更改mylog4j.properties
文件中的日志级别来解决此问题。但是,在下面的示例中,从未提到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
的作品,它在下面处理日志路由jul
,jcl
和log4j
overslf4j
并通过slf4j
使用Logback
,这可以从可区分的缩短名称空间类名看出
所有这些都可以通过IntelliJ图表工具直接在pom文件上看到:
此设置遵循最佳实践:
由于SpringDEBUG
级别的原因,日志很健谈。要改变这一点:
1) 像在Maven项目中一样,在/src/main
下创建一个resources
目录。
2) 在其中创建包含以下内容的logback.xml
文件:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
六年后回顾这个问题,我能说的就是,“哇,这比应该的复杂多了。”
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']