log4jdbc与logback集合打印日志过多的解决
2024-10-19 13:37:05
在项目中使用了log4jdbc,可以很方便的把sql的参数也打印出来,便于问题调试。比如原始sql: select * from t_order where order_id = ? ; 经过log4jdbc的处理后就变成了 select * from t_order where order_id = 123。 但是经过这个处理以后,默认会打印sql相关的很多信息,比如连接、执行时间、参数绑定、结果等信息, 会使日志打印迅速膨胀,我这里服务调用比较频繁,有两个定时任务在调用服务,日志每天在50G左右。于是在 log4jdbc.properties 进行了相关配置,但是没有什么效果。 后来在logback.xml 增加了如下配置:
<logger name="jdbc.sqlonly" level="ERROR">
<appender-ref ref="rollingFile"/>
</logger>
<logger name="jdbc.audit" level="ERROR">
<appender-ref ref="rollingFile"/>
</logger>
<logger name="jdbc.resultset" level="ERROR">
<appender-ref ref="rollingFile"/>
</logger>
<logger name="jdbc.connection" level="ERROR">
<appender-ref ref="rollingFile"/>
</logger>
将jdbc.only, jdbc.audit, jdbc.resultset, jdbc.connection 的打印级别设置为ERROR, 减少了这部分的打印,大家可根据自己的需求进行配置级别。经过优化后每天在1G以内。
附log4jdbc.properties的配置如下:
log4j.logger.jdbc.sqlonly=DEBUG,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
log4j.logger.jdbc.sqltiming=DEBUG,console
log4j.logger.jdbc.connection=DEBUG,console
曾尝试在以上文件中修改DEBUG为ERROR、OFF 都无效。 猜想是因为logback接管了log的输出配置,所以必须在logback中进行配置。 后面有时间再研究下是个什么原因。
最新文章
- linux 下压缩大批量文件
- jQuery+HTML5实现上传文件预览
- c语言问卷
- 【python】lxml查找属性为指定值的节点
- React组件开发
- 【BZOJ】【3164】【HEOI2013】Eden的博弈问题
- no such partition grub rescue>;
- Hdu1076(n个闰年后的年份)
- C语言解析日志,存储数据到伯克利DB
- 轻奢品牌全面崛起 Coach、UGG等纷纷抢滩新兴市场_新闻中心_赢商网
- BZOJ 2434: [Noi2011]阿狸的打字机( AC自动机 + DFS序 + 树状数组 )
- Tip of the Day
- Intersecting Lines POJ 1269
- 基于NIOS-II的示波器:PART1 按键&显示屏驱动&界面
- Win Form不能响应键盘事件
- springboot数据库连接池使用策略
- textfield reload issue and other things reload problem.===================================
- 简析 __init__、__new__、__call__ 方法
- python 数据结构之二分查找的递归和普通实现
- Java 中数据库连接池的比较