我有crearte log4j.properties文件,如下所示:
log4j.logger.org.hibernate=INFO, hb
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
log4j.logger.org.hibernate.hql.ast.AST=info
log4j.logger.org.hibernate.tool.hbm2ddl=warn
log4j.logger.org.hibernate.hql=debug
log4j.logger.org.hibernate.cache=info
log4j.logger.org.hibernate.jdbc=debug
log4j.appender.hb=org.apache.log4j.ConsoleAppender
log4j.appender.hb.layout=org.apache.log4j.PatternLayout
log4j.appender.hb.layout.ConversionPattern=HibernateLog --> %d{HH:mm:ss} %-5p %c - %m%n
log4j.appender.hb.Threshold=TRACE
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我如何将其包含在hibernate.cfg.xml文件中吗?对不起,我实际上不知道log4j是如何工作的.我创建它来显示我的hibernate查询value而不是?但它仍然没有显示?任何变化所以我需要进一步继续吗?
我从这里参考Hibernate显示真正的SQL
我不确定为什么它不显示sql语句.我之前有它工作(在较早的春天,我这次使用3)
在ApplicationContext中我有:
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>my.model.*</value>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
在log4j中:
# Standrd System.out appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
# package override setting
log4j.logger.org.hibernate.SQL=DEBUG, stdout
log4j.additivity.org.hibernate.SQL=false
log4j.logger.org.displaytag=INFO
log4j.rootLogger=DEBUG, stdout
Run Code Online (Sandbox Code Playgroud)
其他一切似乎都很好,但它只是没有向我展示sql.
我错过了什么吗?
(或者是否可以从org.hibernate.cfg.Environment.getProperties()中的SessionFactory进行打印?它没有显示show_sql,甚至可能没有正确注入?)
请提前帮助谢谢!