yujian
2020-05-09 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64
fanli/src/main/java/com/yeshi/fanli/log/LogHelper.java
@@ -2,14 +2,13 @@
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
@@ -22,8 +21,6 @@
   private static Logger orderLogger = Logger.getLogger("orderLog");
   private static Logger userOrderLogger = Logger.getLogger("userOrderLog");
   private static Logger cookieLogger = Logger.getLogger("cookieLog");
   private static Logger testLogger = Logger.getLogger("testLog");
@@ -41,6 +38,21 @@
   private static Logger requestLogger = Logger.getLogger("requestLog");
   private static Logger requestTimeLogger = Logger.getLogger("requestTimeLog");
   private static Logger jobLogger = Logger.getLogger("jobLog");
   private static Logger mqLogger = Logger.getLogger("mqLog");
   private static Logger vipInfoLogger = Logger.getLogger("vipInfoLog");
   private static Logger userProtocolListenLog = Logger.getLogger("userProtocolListenLog");
   public static void userProtocolListen(Object obj) {
      userProtocolListenLog.info(obj);
   }
   public static void userInfo(Object obj) {
      userLogger.info(obj);
   }
@@ -55,10 +67,6 @@
   public static void orderErrorInfo(Object obj) {
      orderLogger.error(obj);
   }
   public static void cookieLog(Object obj) {
      cookieLogger.info(obj);
   }
   public static void userOrder(Object obj) {
@@ -81,6 +89,25 @@
      shareGoodsLogger.info(obj);
   }
   public static void job(Object obj) {
      jobLogger.info(obj);
   }
   public static void mqError(String errorMsg, String topic, String tag, Object data) {
      String error = errorMsg + "\ntopic:" + topic + "\ntag:" + tag + "\nbody:" + data;
      mqLogger.error(error);
   }
   public static void mqInfo(String extraInfo,String msgId, String topic, String tag, Object data) {
      String info = extraInfo+"\nmsgId:"+msgId + "\ntopic:" + topic + "\ntag:" + tag + "\nbody:" + data;
      mqLogger.info(info);
   }
   public static void vipInfo(Object obj) {
      vipInfoLogger.info(obj);
   }
   /**
    * 登录信息
    * 
@@ -90,41 +117,49 @@
      loginLogger.info(obj);
   }
   public static void errorDetailInfo(Throwable e) throws Exception {
   public static void errorDetailInfo(Throwable e) {
      e.printStackTrace();
      String date = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy_MM_dd");
      String os = System.getProperty("os.name");
      String filePath = String.format("/usr/local/tomcat8/logs/error_detail_%s.txt", date);
      String filePath = String.format("/usr/local/tomcat8/logs/error_detail_%s.log", date);
      if (os.toLowerCase().startsWith("win")) {
         filePath = String.format("C:/logs/error_detail_%s.txt", date);
         filePath = String.format("C:/logs/error_detail_%s.log", date);
      } else
         filePath = String.format("/usr/local/tomcat8/logs/error_detail_%s.txt", date);
         filePath = String.format("/usr/local/tomcat8/logs/error_detail_%s.log", date);
      OutputStream out = new FileOutputStream(new File(filePath), true);
      OutputStream out = null;
      try {
         out = new FileOutputStream(new File(filePath), true);
         PrintStream ps = new PrintStream(out);
         ps.print(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
         ps.print("\n");
         e.printStackTrace(ps);
         ps.flush();
         ps.close();
      } catch (Exception ee) {
      } finally {
         out.close();
         try {
            out.close();
         } catch (IOException e1) {
            e1.printStackTrace();
         }
      }
   }
   public static void errorDetailInfo(Throwable e, String params, String url) throws Exception {
   public static void errorDetailInfo(Throwable e, String params, String url) {
      e.printStackTrace();
      String date = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy_MM_dd");
      String os = System.getProperty("os.name");
      String filePath = String.format("/usr/local/tomcat8/logs/error_detail_%s.txt", date);
      String filePath = String.format("/usr/local/tomcat8/logs/error_detail_%s.log", date);
      if (os.toLowerCase().startsWith("win")) {
         filePath = String.format("C:/logs/error_detail_%s.txt", date);
         filePath = String.format("C:/logs/error_detail_%s.log", date);
      } else
         filePath = String.format("/usr/local/tomcat8/logs/error_detail_%s.txt", date);
      OutputStream out = new FileOutputStream(new File(filePath), true);
         filePath = String.format("/usr/local/tomcat8/logs/error_detail_%s.log", date);
      OutputStream out = null;
      try {
         out = new FileOutputStream(new File(filePath), true);
         PrintStream ps = new PrintStream(out);
         ps.print(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
         ps.print("\n");
@@ -135,8 +170,15 @@
         e.printStackTrace(ps);
         ps.flush();
         ps.close();
      } catch (Exception e1) {
      } finally {
         out.close();
         try {
            out.close();
         } catch (Exception e1) {
            e1.printStackTrace();
         }
      }
   }
@@ -175,4 +217,27 @@
      if (info != null)
         smsLogger.info(info);
   }
   public static void requestTime(String url, Map<String, Object> params, long time) {
      String paramsStr = "";
      try {
         Iterator<String> its = params.keySet().iterator();
         List<String> list = new ArrayList<>();
         while (its.hasNext()) {
            String key = its.next();
            Object value = params.get(key);
            Object[] values = (Object[]) value;
            list.add(key + "=" + values[0].toString());
         }
         for (String param : list)
            paramsStr += param + "&";
         if (paramsStr.endsWith("&"))
            paramsStr = paramsStr.substring(0, paramsStr.length() - 1);
      } catch (Exception e) {
      }
      String content = String.format("链接:%s  参数:%s  响应时间:%s", url, paramsStr, time + "");
      requestTimeLogger.info(content);
   }
}