If there's a custom Transaction Manager extending JpaTransactionManager, it seems impossible to suppress the DEBUG messages from these two classes.
**.springframework.transaction.support.AbstractPlatformTransactionManager
.springframework.orm.jpa.JpaTransactionManager**
Logback invokes the parent's logging by default for every registered child but it's possible to disable it with usual configuration. Not with these two Spring classes, however.
2024-11-20 10:29:26,311 DEBUG [http-nio-80-exec-5] o.s.o.j.JpaTransactionManager: Opened new EntityManager [SessionImpl(1432231711<open>)] for JPA transaction
2024-11-20 10:29:26,311 DEBUG [http-nio-80-exec-9] o.s.o.j.JpaTransactionManager: Exposing JPA transaction as JDBC [.springframework.orm.jpa.vendor.HibernateJpaDialect$HibernateConnectionHandle@7bf2a646]
...
2024-11-20 10:29:26,312 DEBUG [http-nio-80-exec-8] o.s.o.j.JpaTransactionManager: Found thread-bound EntityManager [SessionImpl(632462581<open>)] for JPA transaction
2024-11-20 10:29:26,312 DEBUG [http-nio-80-exec-9] o.s.o.j.JpaTransactionManager: Found thread-bound EntityManager [SessionImpl(269177489<open>)] for JPA transaction
2024-11-20 10:29:26,312 DEBUG [http-nio-80-exec-8] o.s.t.s.AbstractPlatformTransactionManager: Participating in existing transaction
...
2024-11-20 10:29:26,318 DEBUG [http-nio-80-exec-9] o.s.t.s.AbstractPlatformTransactionManager: Initiating transaction commit
2024-11-20 10:29:26,318 DEBUG [http-nio-80-exec-8] o.s.o.j.JpaTransactionManager: Committing JPA transaction on EntityManager [SessionImpl(632462581<open>)]
2024-11-20 10:29:26,318 DEBUG [http-nio-80-exec-9] o.s.o.j.JpaTransactionManager: Committing JPA transaction on EntityManager [SessionImpl(269177489<open>)]
2024-11-20 10:29:26,319 DEBUG [http-nio-80-exec-8] o.s.o.j.JpaTransactionManager: Closing JPA EntityManager [SessionImpl(632462581<open>)] after transaction
2024-11-20 10:29:26,319 DEBUG [http-nio-80-exec-9] o.s.o.j.JpaTransactionManager: Closing JPA EntityManager [SessionImpl(269177489<open>)] after transaction
The Transaction Manager is defined like this. Even if it doesn't have any logging code inside, the above messages trickle through anyway.
package my.package;
public class MyTransactionManager extends JpaTransactionManager {
...
Log level is DEBUG for "my.package". This is important. If the level goes above to INFO, it shuts up Spring JPA messages. Nothing else does, unfortunately.
<logger name="**my.package**" level="debug" additivity="false">
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</logger>
Tried various Logback tricks with filters and No-op appenders to no avail.
<appender name="DENY_ALL" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>OFF</level>
</filter>
</appender>
<appender name="NOOP" class="ch.qos.logback.core.helpers.NOPAppender"/>
<logger name=".springframework" level="OFF"/>
<logger name=".springframework.orm.jpa.JpaTransactionManager" level="OFF" additivity="false"/>
<logger name=".springframework.transaction.support.AbstractPlatformTransactionManager" level="OFF" additivity="false"/>
<logger name="my.package.MyTransactionManager" level="OFF"/>
<logger name=".springframework.transaction.support.AbstractPlatformTransactionManager" level="OFF" additivity="false">
<appender-ref ref="DENY_ALL"/>
</logger>
<logger name=".springframework.transaction.support.AbstractPlatformTransactionManager" level="OFF" additivity="false">
<appender-ref ref="NOOP"/>
</logger>
<logger name=".springframework" level="OFF" additivity="false">
<appender-ref ref="DENY_ALL"/>
</logger>
<root level="info">
<appender-ref ref="DENY_ALL"/>
</root>
Any thoughts how to get rid of this spam?
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742355757a4428398.html
评论列表(0条)