JFinal 如何将操作日志存入到数据库中

发布网友 发布时间:2022-04-25 13:14

我来回答

1个回答

热心网友 时间:2022-04-08 01:21

操作日志, 也分粗细颗粒.

比如常见的 配置JFinal的Handler, 配置LogHandler的处理器,Handler可以接管所有web请求, 这里可以做粗颗粒的处理, 对每一个请求做入库处理, 如果访问量大时, 入库操作做列队处理就可以了.

细颗粒的, 如在JAVA代码中的 Log log = Log.getLog("JAVA类描述或类名");

这个一般做入库的还是少, 毕竟已经有很成熟的日志分析查看工具了, 可以直接查文件了. 
如果业务需要做这个, 那也很简单:

1: 需要实现一个接口ILogFactory :

/**
 * JdkLogFactory.
 */
public class DbLogFactory implements ILogFactory {

public Log getLog(Class<?> clazz) {
return new DbLog(clazz);
}

public Log getLog(String name) {
return new DbLog(name);
}
}

2: DbLog 参考jfinal代码中 com.jfinal.log.Log4jLog  把这个类复制一下, 在每个方法中增加一个入库的操作, 当然量大时, 入库操作做列队处理就可以了.

3: 在JFinalConfig中:

@Override
public void configConstant(Constants me) {
        //先启动数据库
        ActiveRecordPlugin可以于java web 环境运行在任何普通的java程序中,使用方式极度简单,相对于web项目只需要手动调用一下其start() 方法即可立即使用。
        
        //设置为你的工厂 DbLogFactory
me.setLogFactory(new DbLogFactory());
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com