log4j输出mysql语句,实现不了???

发布于 2021-11-13 19:29:41 字数 550 浏览 808 评论 6

eclipse下,利用log4j输出mysql语句到文件,没有用其他框架,文件能生成,但是里面是空的。这是为何呢?配置如下:

### sql-rs log ###
log4j.logger.java.sql.ResultSet=DEBUG,rs
log4j.appender.rs=org.apache.log4j.RollingFileAppender 
log4j.appender.rs.Threshold=DEBUG 
log4j.appender.rs.File=logs/log4j-sql/file-rs.log 
log4j.appender.rs.Append=true
log4j.appender.rs.MaxFileSize=10KB
log4j.appender.rs.MaxBackupIndex=2
log4j.appender.rs.layout=org.apache.log4j.PatternLayout
log4j.appender.rs.layout.ConversionPattern=[%d{yyyy-MM-dd HH
              

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

柒夜笙歌凉 2021-11-18 23:02:35

对,可以用代理,代理调用方法的同时并生成log

陌上芳菲 2021-11-18 22:42:29

那就是说需要使用一些支持log4j的持久层框架才能实现sql语句的输出,是这个意思吗?原生的不支持?

心舞飞扬 2021-11-18 22:33:39

log4j 之所以能输出某程序运行的log,是因为这个程序的代码里有log4j的接口和对应代码。这个属于设计模式的概念了。

如:

public static void init() {
		if (factory != null)
			return ;
		try {
			Class.forName("org.apache.log4j.Logger");
			Class<?> log4jLoggerFactoryClass = Class.forName("com.jfinal.log.Log4jLoggerFactory");
			factory = (ILoggerFactory)log4jLoggerFactoryClass.newInstance();	// return new Log4jLoggerFactory();
		} catch (Exception e) {
			factory = new JdkLoggerFactory();
		}
	}

不是你想什么程序打印log,用log4j配置下就能生成的log了。。。log4j 不是神,原理要搞清楚。假如我开发的这个程序更本就没有log模块,就是耶稣来了也不能硬生生地打印个日志出来

白龙吟 2021-11-18 17:00:44

记得原生的没那支持?是不是理解有误。不是什么东西debug就给你输出的。况且MySQL的驱动包可没依赖外部的日志框架。

韬韬不绝 2021-11-17 11:38:53

恩 我试试看

睫毛上残留的泪 2021-11-16 15:16:59

http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html

如果坚持要用原生的驱动包实现,请看下这个的Debugging/Profiling. 不过不保证能解决。

简单一点,推荐下druid或者osc代码分享里面红薯以前发过一个用jdk proxy实现的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文