Beispiel #1
0
  /**
   * @param pjp
   * @return
   * @throws Throwable
   */
  private static Object processAroundInternal(
      Map svcDef, final ProceedingJoinPoint pjp, LoggerPoint point) throws Throwable {

    long _time = System.currentTimeMillis();
    IService service = (IService) pjp.getTarget();
    String _ip = service.getRemoteHost();
    Integer _logId =
        1; // logBiz.add(Log4Monitor.getClientIpAddress(resource.getHttpServletRequest()), cls, mtd,
    // svcId, (String)svcDef.get("detail"));
    Object retVal = null;
    Integer _code = 200; // 成功
    boolean _error = true;
    try {
      if (point != null) {
        String keys = point.key();
        if ("none".equalsIgnoreCase(keys)) {
          return pjp.proceed();
        }
      }
      retVal = pjp.proceed();
      _error = false;
      if (retVal == null || !Response.class.isAssignableFrom(retVal.getClass())) {
        return retVal;
      }
    } catch (Exception e) {

    } finally {

    }

    IResult _response = (IResult) retVal;

    String _resourceid = getService(pjp, service, point, (Map) svcDef.get(AliasUtil.KEYMAP_KEY));

    StringBuffer tmp = new StringBuffer((String) svcDef.get("className"));
    String _svc =
        tmp.append(".")
            .append((String) svcDef.get("methodName"))
            .append((String) svcDef.get("detail"))
            .toString();
    _resourceid = _resourceid == null ? "" : "resourceid=" + _resourceid;

    final String ip = _ip;
    final String svc = _svc;
    final Integer logId = _logId;
    final String resourceid = _resourceid;
    final boolean error = _error;
    final Integer code = _code;
    _time = System.currentTimeMillis() - _time;
    final long time = _time;
    // 20101223 10:42:22.683 INFO  access - PropResource.useful(uid=1,orderId=2,type="3",targetId=4)
    // code=404 resourceid=1  timeused=69ms
    final String id = null;
    new AsynBizExecutor("logger.info") {
      public void execute() {
        String logInfo = null;

        String svc_ = svc;
        if (id != null) {
          svc_ = id + " " + svc_;
        }
        _logger.info(
            "%s %s code=%d %s %s timeused=%,dms", ip, svc_, code, resourceid, logInfo, time);
      };
    };
    return _response;
  }