gpt4 book ai didi

java - 在 hibernate 中包含 log4j 属性文件以显示带有值而不是问号的查询

转载 作者:太空狗 更新时间:2023-10-29 22:45:57 25 4
gpt4 key购买 nike

我创建了如下所示的 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 是如何工作的。我创建它是为了使用 value 而不是 ? 显示我的 hibernate 查询,但它仍然显示 ? 没有任何变化,所以我需要进一步做什么?

我从这里引用了Hibernate show real SQL

最佳答案

hibernate.cfg.xml 中的“show_sql”属性导致查询直接打印到控制台。

Log4j 允许将输出记录在从控制台到文件到网络端口到数据库的任何位置。但是您拥有的简单配置也应该在控制台上打印。因此,首先删除 show_sql 属性以查看 Log4j 是否在控制台上放置了任何内容。

如果这不起作用,则表明 Log4j 配置不正确。如果您使用的是 hibernate > 3.5,它会使用 slf4j api,它默认使用 logback 而不是 log4j。您可以通过从类路径中删除 logback jar 并添加 slf4j-log4j12.jar 和 log4j.jar 来轻松切换到 log4j。

Log4j 跟踪还使用“?”打印查询,但它也打印参数绑定(bind),即“?”是什么?将由数据库驱动程序或服务器替换。

关于java - 在 hibernate 中包含 log4j 属性文件以显示带有值而不是问号的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com