[英]How to configure hibernate logging using log4j2.xml?
我最近切換到Apache log4j2,仍然找不到使用log4j2.xml配置hibernate日志記錄的方法。
因為我無法找到解決此問題的方法,所以我仍然明確地將log4j.properties文件用於hibernate。 這不是最佳解決方案,因為我的log4j2.xml使用JPA appender(將日志寫入db)。 我不想為hibernate編寫單獨的邏輯。
有沒有辦法使用log4j2配置hibernate日志記錄?
正如https://issues.apache.org/jira/browse/LOG4J2-172中建議的那樣你可以添加系統屬性來強制hibernate使用slf4j
-Dorg.jboss.logging.provider = SLF4J
還應將log4j-slf4j-impl添加到classpath中
我的自定義解決方案:使用Spring,您可以在屬性文件中放置org.jboss.logging.provider = slf4j
(envConfigLocation是文件url)
<bean id="propertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="location" ref="envConfigLocation" />
<property name="order" value="1"/>
</bean>
我找到了這個問題的答案: 如何將所有日志從休眠和spring重定向到log4j2?
基本上log4j2不能與Hibernate一起使用,所以你必須使用log4j。 但您仍然使用log4j2配置。 您需要以下依賴項,然后魔術才會在后台發生。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<!--HIBERNATE LOGGER (log4j)-->
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.6</version>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.