本人的javaee项目是用log4j来控制日志输出的,现在有个项目要求不能在日志中打印数据库连接方面的信息,包括连接地址、端口、账号、密码。
例如:
[DEBUG] [org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:132)] 2015-10-26 11:31:00 :ooo Using Connection [jdbc:mysql://localhost:3306/mydb?allowMultiQueries=true, UserName=root@localhost, MySQL-AB JDBC Driver]
这个是mybatis的包中打印出来的,这里面在日志中暴露了数据库连接、端口、数据库用户名等信息。
log4j.logger.org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug=OFF 本人用log4j的控制方法去控制,没有效果。
本人的要求就是要达到:1、打印sql语句、对应参数。2禁止打印数据库连接地址、账号等信息。
本人目前第一个都正常,就是第二个无法控制。
不知道各位有没有好的处理方式,或说谁知道log4j中有没有替换的配置。假如一旦遇到数据库连接的信息就把这段日志控制成打印空字符串。只要不在日志中输出就行了。
本人曾经也想过修改源码,不过太麻烦了,就没考虑。望有经验之士不吝赐教。
例如:
[DEBUG] [org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:132)] 2015-10-26 11:31:00 :ooo Using Connection [jdbc:mysql://localhost:3306/mydb?allowMultiQueries=true, UserName=root@localhost, MySQL-AB JDBC Driver]
这个是mybatis的包中打印出来的,这里面在日志中暴露了数据库连接、端口、数据库用户名等信息。
log4j.logger.org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug=OFF 本人用log4j的控制方法去控制,没有效果。
本人的要求就是要达到:1、打印sql语句、对应参数。2禁止打印数据库连接地址、账号等信息。
本人目前第一个都正常,就是第二个无法控制。
不知道各位有没有好的处理方式,或说谁知道log4j中有没有替换的配置。假如一旦遇到数据库连接的信息就把这段日志控制成打印空字符串。只要不在日志中输出就行了。
本人曾经也想过修改源码,不过太麻烦了,就没考虑。望有经验之士不吝赐教。
解决方案
40
log4j.logger.java.sql.Connection = DEBUG 这个级别可以设置高一点