我阅读了关于stackoverflow和一些教程的内容,但是我仍然不能解决这个问题。 Hibernate仅在控制台中不登录日志文件。
这是代码段(这不是完整的代码):
DAO:
@PersistenceContext(unitName = "entityManagerFactoryBPM")
private EntityManager em;
@Override
public SomeEntity someMethod(BigDecimal Id){
Query query = em.createNativeQuery("SOME QUERY", SomeEntity.class);
query.setParameter("id", id);
return (SomeEntity)query.getSingleResult();
}
JPAConfig(我在那里设置了HIBERNATE_SHOW_SQL_VALUE =“ true”;):
public class JPAConfig {
private final String HIBERNATE_DIALECT_KEY = "dialect.key=hibernate.dialect";
private String HIBERNATE_DIALECT_VALUE = "org.hibernate.dialect.Oracle12gDialect";
private String HIBERNATE_SHOW_SQL_KEY = "hibernate.show_sql";
private String HIBERNATE_SHOW_SQL_VALUE = "true";
private String HIBERNATE_PACKAGES_TO_SCAN = "com.bla.package12";
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBPM() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(dataSourceBPM);
entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistenceProvider.class);
entityManagerFactoryBean.setPackagesToScan(HIBERNATE_PACKAGES_TO_SCAN);
entityManagerFactoryBean.setJpaProperties(hibProperties());
return entityManagerFactoryBean;
}
private Properties hibProperties() {
Properties properties = new Properties();
properties.put(HIBERNATE_DIALECT_KEY, HIBERNATE_DIALECT_VALUE);
properties.put(HIBERNATE_SHOW_SQL_KEY, HIBERNATE_SHOW_SQL_VALUE);
return properties;
}
我将其添加到Appender中
<logger name="org.hibernate" additivity="false" level="DEBUG">
<appender-ref ref="DAO_LAYER_LOG" />
</logger>
<logger name="org.hibernate.type" additivity="false" level="TRACE">
<appender-ref ref="DAO_LAYER_LOG"/>
</logger>
我还需要做什么才能登录日志文件?我还为log4j获得了一些xml。其他日志可以正常工作,只有休眠不能。