jfinal ext 中 SysInterceptor 具体要怎么用呢?

发布于 2021-11-24 12:58:46 字数 163 浏览 882 评论 3

@绝望的八皮


看了文档, 但是还是不知道,具体怎么用, 请大神 知道下, 谢谢啦

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

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

发布评论

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

评论(3

柒夜笙歌凉 2021-11-29 08:13:58

@
绝望的八皮 这样其实不管方法有没有执行成功都记录了日志,如果我想根据方法内部执行情况来记录日志的话有没有好办法

恋你朝朝暮暮 2021-11-29 04:45:52
非常感谢, 是需要再 配置文件中 configInterceptor 中加入 以下配置
me.add(new SysLogInterceptor()
        		.setLogProcesser(new AdminLogProccesor())
        		.addConfig("/product/classSave", 
        				new LogConfig("产品类别")
        					.addPara("productClass.id", "表ID")
        					.addPara("productClass.name", "类别名称")
        					.addPara("productClass.code", "类别编码")
        					.addPara("productClass.parentId", "父类ID")
        		)
)

蓝颜夕 2021-11-28 10:35:34
public class DefaultLogProccesor implements LogProcessor {
    @Override
    public void process(SysLog sysLog) {
        Map map = null;
        try {
            map = BeanUtils.describe(sysLog);
            map.remove("class");
        } catch (Exception e) {
            e.printStackTrace();
        }
        Record record = new Record();
        record.setColumns(map);
        System.out.println(record);
//        Db.save("syslog", record);
    }

    @Override
    public String getUsername(Controller c) {
        return c.getSessionAttr("username");
    }

    @Override
    public String formatMessage(String title, Map<String, String> message) {
        String result = title;
        if (message.isEmpty()) {
            return result;
        }
        result += ", ";
        Set<Map.Entry<String, String>> entrySet = message.entrySet();
        for (Map.Entry<String, String> entry : entrySet) {
            String key = entry.getKey();
            String value = entry.getValue();
            result += key + ":" + value;
        }
        return result;
    }

}

参考这个。这个就是吧每次访问的信息打印出来了而已。你可以建个对应的表存入数据库根据你的需要

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