休眠登录日志文件吗?

时间:2019-05-22 16:33:21

标签: java spring hibernate log4j

我阅读了关于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。其他日志可以正常工作,只有休眠不能。

0 个答案:

没有答案