code: public static void logErrorScene(Map<String, Object> rt, AlipayResponse tRsp,
                                       String appSecret) {
          if (!needEnableLogger) {
              return;
          }
          DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          df.setTimeZone(TimeZone.getTimeZone(AlipayConstants.DATE_TIMEZONE));
          StringBuilder sb = new StringBuilder();
          sb.append("ErrorScene");
          sb.append("^_^");
          sb.append(tRsp.getErrorCode());
          sb.append("^_^");
          sb.append(tRsp.getSubCode());
          sb.append("^_^");
          sb.append(ip);
          sb.append("^_^");
          sb.append(osName);
          sb.append("^_^");
          sb.append(df.format(new Date()));
          sb.append("^_^");
          sb.append("ProtocalMustParams:");
          appendLog((AlipayHashMap) rt.get("protocalMustParams"), sb);
          sb.append("^_^");
          sb.append("ProtocalOptParams:");
          appendLog((AlipayHashMap) rt.get("protocalOptParams"), sb);
          sb.append("^_^");
          sb.append("ApplicationParams:");
          appendLog((AlipayHashMap) rt.get("textParams"), sb);
          sb.append("^_^");
          sb.append("Body:");
          sb.append((String) rt.get("rsp"));
          blog.error(sb.toString());
      }
docs: 发生特别错误时记录完整错误现场