hibernate怎么控制log4j只输出select sql语句

zhouyiminga 2018-05-07 11:31:38
现在一个系统出了些问题,想记录下select语句的一些信息排查。但是这个系统大部分时间是在执行插入更新操作,全部输出sql语句很影响性能,也很难找到select语句的日志。想知道怎么实现控制log4j只输出select的语句。
...全文
441 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
消灭八阿哥 2018-05-07
  • 打赏
  • 举报
回复
换个思路啊,日志 grep 不就行了吗?
maradona1984 2018-05-07
  • 打赏
  • 举报
回复
引用 2 楼 qq_30946821 的回复:
[quote=引用 1 楼 shijing266 的回复:] 这个有特别的业务需求吗? hibernate 我所知道的都是配置全体输出的,只输出select还没配置过 可否换成mybatis?
就是系统会产生内存溢出,虽然看dump文件找到了可疑的地方解决了,但是他们要预防万一再加个日志好以后继续排查。一开始加了全体输出的,日志量实在太大,90%以上的都是更新插入操作,如果可以过滤掉其它类型的sql语句只输出select的应该就挺完美了。公司框架换不了mybatis。感觉可以重写log4j的什么类来实现。[/quote] 那就重写呗,或者可以换个思路,换持久化框架不太合适,但可以考虑从数据源上输出sql日志 如果用druid就直接用druid的过滤器输出你想要的日志,你还可以把参数拼接进去,这个非常实用 如果不是用druid,可以考虑换成druid,换数据源的成本几乎为0
  • 打赏
  • 举报
回复
参考RegexFilter 看下上面这个,可以参考RegexFilter来试试能否控制
  • 打赏
  • 举报
回复
我也查了很多这方面的资料,没有办法帮你了
zhouyiminga 2018-05-07
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
这个有特别的业务需求吗? hibernate 我所知道的都是配置全体输出的,只输出select还没配置过 可否换成mybatis?
就是系统会产生内存溢出,虽然看dump文件找到了可疑的地方解决了,但是他们要预防万一再加个日志好以后继续排查。一开始加了全体输出的,日志量实在太大,90%以上的都是更新插入操作,如果可以过滤掉其它类型的sql语句只输出select的应该就挺完美了。公司框架换不了mybatis。感觉可以重写log4j的什么类来实现。
  • 打赏
  • 举报
回复
这个有特别的业务需求吗? hibernate 我所知道的都是配置全体输出的,只输出select还没配置过 可否换成mybatis?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧