zoukankan      html  css  js  c++  java
  • LoggerAspect

    package nc.oss.utils;
    
    import java.util.Date;
    
    import nc.bs.framework.common.InvocationInfoProxy;
    import nc.bs.framework.server.ServerConfiguration;
    import nc.md.model.MetaDataException;
    import nc.md.persist.framework.MDPersistenceService;
    import nc.oss.common.OSSConst;
    import nc.vo.oss.log.AggLogVO;
    import nc.vo.oss.log.LogDetailVO;
    import nc.vo.oss.log.LogVO;
    import nc.vo.pub.VOStatus;
    import nc.vo.pub.lang.UFDateTime;
    
    import org.apache.commons.lang.StringUtils;
    
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    
    /**
     * 日志切面类
     * 
     *
     */
    public class LoggerAspect {
        
        /**
         * 记录日志
         * @param serviceName 调用服务接口名
         * @param msgObj 服务返回日志
         */
        public static void saveLogger(String serviceName, JSONObject msgObj) {
            if (!StringUtils.isEmpty(serviceName) && msgObj != null) {
                AggLogVO aggVO = new AggLogVO();
                LogVO logVO = new LogVO();
                aggVO.setParentVO(logVO);
                UFDateTime creationtime = new UFDateTime(new Date());
                JSONObject retMsgContent = msgObj.getJSONObject(OSSConst.RETURN_MSG);
                String serverAddr = InvocationInfoProxy.getInstance().getCallServer();
                serverAddr = ServerConfiguration.getServerConfiguration().getServerName();
                
                logVO.setPk_service(serviceName);
                logVO.setService_name(serviceName);
                logVO.setServer_addr(serverAddr); // 服务器地址
                logVO.setRun_status(msgObj.getIntValue(OSSConst.STATUS));
                logVO.setLog_msg(retMsgContent.getString(OSSConst.MSG_SUMMARY)); // 消息摘要
                logVO.setExt_system(msgObj.getString(OSSConst.EXT_SYSTEM)); // 外部系统
                logVO.setBill_type(msgObj.getString(OSSConst.BILL_TYPE));   // 单据类型
                logVO.setCreationtime(creationtime);
                // 构造日志明细VO
                aggVO.setChildrenVO(createLogDetails(serviceName, retMsgContent));
                
                try {
                    logVO.setStatus(VOStatus.NEW);
                    MDPersistenceService.lookupPersistenceService().saveBill(aggVO);
                } catch (MetaDataException e) {
                    e.printStackTrace();
                }
            }
        }
        
        private static LogDetailVO[] createLogDetails(String serviceName, JSONObject msgContent) {
            LogDetailVO[] detailVOs = null;
            JSONArray msgDetails = msgContent.getJSONArray(OSSConst.MSG_CONTENT);
            if (msgDetails != null && msgDetails.size()>0) {
                int count = msgDetails.size();
                detailVOs = new LogDetailVO[count];
                for (int i=0; i<count; i++) {
                    LogDetailVO detailVO = new LogDetailVO();
                    JSONObject jsonMsgDetail = msgDetails.getJSONObject(i);
                    
                    detailVO.setPk_business(jsonMsgDetail.getString(OSSConst.BILL_PK)); // 单据PK
                    detailVO.setPk_business_ext(jsonMsgDetail.getString(OSSConst.SRC_BILL_PK)); // 来源单据PK
                    detailVO.setPk_service(serviceName);
                    detailVO.setRun_status(jsonMsgDetail.getIntValue(OSSConst.STATUS));
                    detailVO.setLog_msg(jsonMsgDetail.getString(OSSConst.MSG_DETAIL_DESC));
                    detailVO.setCreationtime(new UFDateTime(new Date()));
                    detailVO.setStatus(VOStatus.NEW);
                    detailVOs[i] = detailVO;
                }            
            }
            return detailVOs;
        }
        
    }
  • 相关阅读:
    python 获取qq群成员列表数据
    selenium定位伪类元素::before
    flask 重写HTTPException类并自定义异常信息
    flask 工厂模式与celery结合
    重写flask_sqlalchemy的BaseQuery下面的filter_by方法
    Pytest系列
    Pytest系列- 多重校验插件之pytest-assume的详细使用
    mysql 主主+ Keepalived 高可用
    redis 主从配置,主从切换
    FastDFS 学习笔记
  • 原文地址:https://www.cnblogs.com/zzzzw/p/9131675.html
Copyright © 2011-2022 走看看