SqlReporter默认未开启logger

当ActiveRecordPlugin.setShowSql(true)时,sql日志没有打印到log4j文件,只是直接在控制台输出,看了SqlReporter的源码,此处是否设计时未考虑到?还是bug?

建议使用系统在用的日志工具打印出来,比如log4j或者jdklog等等

image.png

评论区

JFinal

2018-07-23 22:34

调用一下: SqlReporter.setLog(true) 即可输出到日志

lang3126

2018-07-24 10:42

@JFinal 我现在就是这么干的。

JFinal

2018-07-24 10:49

@lang3126 日志的配置要配置好,就可以输出到日志文件了

chcode

2019-09-01 20:28

@JFinal 独立版本源码好像不一样 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
try {
if (method.getName().equals("prepareStatement")) {
String info = "Sql: " + args[0];
if (logOn)
// log.info(info);
System.out.println(info);
else
System.out.println(info);
}
return method.invoke(conn, args);
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}

chcode

2019-09-01 20:29

@JFinal 都是直接输入控制台

JFinal

2019-09-01 20:44

@chcode 独立版本将 log.info 换成 System.out.print 了, 因为独立版本中没有 log 模块

chcode

2019-09-01 20:59

@JFinal 有什么好办法不改源码 能输出log