从 Maven 禁用休眠日志记录
Posted
技术标签:
【中文标题】从 Maven 禁用休眠日志记录【英文标题】:Disable logging with hibernate from maven 【发布时间】:2015-04-07 21:08:48 【问题描述】:我最近在我的 pom.xml 中添加了 hibernate,它运行良好。但是,日志记录很烦人,我不知道如何关闭它或限制它的级别(我什至不知道它包含什么来启动所有这些日志记录)。我对此不熟悉,不熟悉 Maven 和休眠。
这是我的 pom.xml 依赖项:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>4.0.1.Final</version>
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.10</version>
</dependency>
</dependencies>
日志是这样开始的:
21:17:15.115 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider
21:17:15.130 [main] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BooleanType@ba4d54
21:17:15.130 [main] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BooleanType@ba4d54
21:17:15.130 [main] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@ba4d54
我尝试将 log4j.properties 文件添加到我的资源中,但它似乎没有改变任何东西。我还尝试了 simplelog.properties(在其他没有帮助的 SO 帖子之后)。我有点卡在这里,非常感谢您的帮助。理想情况下,我只想将记录器设置为关闭,或者只设置 mysql 查询。
这是依赖树:
[INFO] org.springframework:gs-rest-service:jar:0.1.0
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.1.10.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:1.1.10.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot:jar:1.1.10.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.1.10.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:1.1.10.RELEASE:compile
[INFO] | | | +- org.slf4j:jcl-over-slf4j:jar:1.7.7:compile
[INFO] | | | | \- org.slf4j:slf4j-api:jar:1.7.7:compile
[INFO] | | | +- org.slf4j:jul-to-slf4j:jar:1.7.7:compile
[INFO] | | | +- org.slf4j:log4j-over-slf4j:jar:1.7.7:compile
[INFO] | | | \- ch.qos.logback:logback-classic:jar:1.1.2:compile
[INFO] | | | \- ch.qos.logback:logback-core:jar:1.1.2:compile
[INFO] | | \- org.yaml:snakeyaml:jar:1.13:runtime
[INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.1.10.RELEASE:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:7.0.57:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:7.0.57:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-logging-juli:jar:7.0.57:compile
[INFO] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:7.0.57:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.3.4:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.3.4:compile
[INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.3.4:compile
[INFO] | +- org.hibernate:hibernate-validator:jar:5.0.3.Final:compile
[INFO] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | | \- com.fasterxml:classmate:jar:1.0.0:compile
[INFO] | +- org.springframework:spring-core:jar:4.0.8.RELEASE:compile
[INFO] | +- org.springframework:spring-web:jar:4.0.8.RELEASE:compile
[INFO] | | +- org.springframework:spring-aop:jar:4.0.8.RELEASE:compile
[INFO] | | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | +- org.springframework:spring-beans:jar:4.0.8.RELEASE:compile
[INFO] | | \- org.springframework:spring-context:jar:4.0.8.RELEASE:compile
[INFO] | \- org.springframework:spring-webmvc:jar:4.0.8.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:4.0.8.RELEASE:compile
[INFO] +- org.hibernate:hibernate-core:jar:4.0.1.Final:compile
[INFO] | +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] | +- antlr:antlr:jar:2.7.7:compile
[INFO] | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar:1.0.0.Final:compile
[INFO] | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] | +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.1.0.CR2:compile
[INFO] | +- org.javassist:javassist:jar:3.18.1-GA:compile
[INFO] | \- org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final:compile
[INFO] +- org.hibernate.common:hibernate-commons-annotations:jar:tests:4.0.1.Final:compile
[INFO] \- mysql:mysql-connector-java:jar:5.1.10:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 35.918 s
[INFO] Finished at: 2015-02-07T22:09:37+00:00
[INFO] Final Memory: 20M/203M
[INFO] ------------------------------------------------------------------------
解决方案是在项目的资源文件夹中添加一个名为“logback.xml”的配置文件。这个文件的内容是:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%dHH:mm:ss.SSS [%thread] %-5level %logger36 - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
【问题讨论】:
感谢您发布您的解决方案。它帮助了我。 【参考方案1】:您可能在日志框架配置中设置了全局 DEBUG
日志级别。
您只需将org.hibernate
日志级别设置为WARN
或ERROR
:
Logback/Log4j2
<logger name="org.hibernate" level="warn"/>
Log4j
<logger name="org.hibernate">
<level value="warn"/>
</logger>
【讨论】:
感谢您的回答,但我不知道在哪里可以找到日志记录框架配置,我认为这是问题所在。有什么提示吗?由于我没有创建任何配置文件,我猜这是默认设置,或者打包在 maven 检索到的其中一个 jar 中。 您需要运行mvn dependency:tree
并检查 log4j 和 logback。覆盖一些默认日志配置的方法是在src/main/resources
中添加您自己的配置。
好的,我可以在我的树中看到这个:[INFO] | | | \- ch.qos.logback:logback-classic:jar:1.1.2:compile [INFO] | | | \- ch.qos.logback:logback-core:jar:1.1.2:compile 我假设这意味着我正在使用 logback(我不完全确定这是什么),因此我需要你的第一段代码 以上是关于从 Maven 禁用休眠日志记录的主要内容,如果未能解决你的问题,请参考以下文章
休眠(4.3.11-Final)日志记录未桥接到 log4j2?