jfinal 控制台打出的请求日志怎么保存到log4j?

chi_9 发布于 2014/07/12 09:08
阅读 2K+
收藏 0

@JFinal

如图:

怎么这个信息连带所调用方法执行的sql保存到log4j?

加载中
0
hewep
hewep
这个是 用 system.out  输出的; 请看 com.jfinal.core.ActionReporter的 doReport 方法.  你 记录这个有什么意义?
chi_9
chi_9
不然 log4j 应该记录些什么?难道只记录异常?不记录发生异常的过程?
0
JFinal
JFinal

简单介绍两个方法:

1:通过全局拦截器,在拦截器中通过反射得到 ActionInvocation 对象中的 action、inters 对象,就可以获取到你需要的信息,urlPara 可以通过 controller.getPara() 获取到,method可以通过ai.getMethodName() 获取到

2:另一个不太常规的方法,将 System.out 输出流切换到你自己的实现类上去,在你自己的实现类上使用 log4j 输出。

    JFinal Action Report 设计用于开发阶段对开发者的实时提示,一般不建议楼主的用法,通常用一个全局拦截器记录所有异常即可

JFinal
JFinal
回复 @chi_9 : 日志记录得越详细当然越有助于解决问题,异常里面包含了错误堆栈,能够知道是哪一行代码抛出的异常,所以不需要再重复记录action,至于action参数及 sql 当然记录了更有助于排查错误,因为有些错误只在特定的参数下面出现
chi_9
chi_9
以前也没在意过日志,想请教一下,一般log4j应该怎么记录日志呢?只记录异常吗?那在发现异常的时候怎么来判断异常呢?是不是也应该记录一下action的请求(就是我上面发的图片)和对数据库操作的sql呢?不然只看异常,怎么能够准确分析问题所在?还是看到异常出现的位置,进行模拟测试?求教
返回顶部
顶部