日志筛选工具(二)

controller

    /**
     * 辅助分析查看别的系统的日志
     * @param ip
     * @param instance
     * @param logfilePath
     */
    @Request(url="assistant",  view="/um2/env/real-log.jsp")
    public void assistant(@SimpleVariable("ip")String ip, @SimpleVariable("instance")String instance, 
            @SimpleVariable("logfilePath")String logfilePath, @SimpleVariable("username")String username,
            @SimpleVariable("password")String pwd){
        try {
            AuditLog.info(getCurrentUser(request) + "在" + request.getRemoteAddr() + "上使用辅助工具查看了[" + ip + "@" + instance + "]的日志");
            CrtRunner.addAssistantTask(ip, instance, logfilePath, username, pwd);
            //分配一个通道号
            String channelId = UUID.randomUUID().toString();
            request.setAttribute("channelId", channelId);
            request.setAttribute("instance", instance);
            request.setAttribute("ip", ip);
            if(!CrtRunner.registerChannel(ip, instance, request.getRemoteAddr(), channelId)){
                request.setAttribute("result", "failed");
            }
        } catch (Exception e) {
            logger.error(e.getMessage());
            request.setAttribute("result", "failed");
            request.setAttribute("msg", e.getMessage());
        }
    }

    public void outMsg(HttpServletResponse resp, String msg) {
        try {
            resp.getWriter().println(msg);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }

    /**
     * 用来检测登陆,什么都不做
     */
    @Request(url="testLogin")
    public void testLogin(){}

    /**
     * 读取实时日志
     * @param req
     * @param resp
     */
    @Request(url="readLog")
    public void readLog(HttpServletRequest req, HttpServletResponse resp){
        LogTask data = null;
        try {
            String instanceIp = req.getParameter("ip");
            String instanceName = req.getParameter("instance");
            String channelId = req.getParameter("channelId");
            String filter = req.getParameter("filter");
            int start = Integer.parseInt(req.getParameter("start"));
            try{
                data = CrtRunner.readData(instanceIp, instanceName, 
                        start, req.getRemoteAddr(), channelId, filter);
                resp.getWriter().println(JSONObject.fromBean(data).toString());
            }catch(Exception e){
                logger.error(e.getMessage());
                outMsg(resp, e.getMessage());
            }
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            outMsg(resp, e.getMessage());

        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值