我有如下的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
有人可以帮助我将其包含在hibernate.cfg.xml文件中吗?抱歉,我实际上不知道log4j的工作方式。我创建它的目的是显示我的hibernate查询,value而不是?显示?任何更改,所以我需要进一步处理吗?
hibernate.cfg.xml
value
?
我从这里参考了Hibernate展示真正的SQL
hibernate.cfg.xml中的’show_sql’属性使查询直接打印到控制台。
Log4j允许将输出记录在控制台,文件,网络端口和数据库的任何位置。但是,您所拥有的简单配置也应该在控制台上打印。因此,首先删除show_sql属性,看看Log4j是否在控制台上放了任何东西。
如果这不起作用,则表明Log4j配置不正确。如果您使用的是Hibernate> 3.5,它将使用slf4j api,该api默认使用logback而不是log4j。通过从类路径中删除logback jar,然后添加slf4j-log4j12.jar和log4j.jar,可以轻松切换到log4j。
Log4j跟踪还使用“?”打印查询,但它也打印参数绑定,即“?” 将由数据库驱动程序或服务器替换。