Przeglądaj źródła

Log组件支持输出异常栈信息,底层实现优化

xuxueli 8 lat temu
rodzic
commit
451eb2b7b3

+ 1 - 1
doc/XXL-JOB官方文档.md Wyświetl plik

1064
 - 10、执行器端口支持随机生成(小于等于0时),避免端口定义冲突;
1064
 - 10、执行器端口支持随机生成(小于等于0时),避免端口定义冲突;
1065
 - 11、任务Cron长度扩展支持至128位;
1065
 - 11、任务Cron长度扩展支持至128位;
1066
 - 12、调度报表优化,支持时间区间筛选;
1066
 - 12、调度报表优化,支持时间区间筛选;
1067
-- 13、Log组件支持输出异常栈信息;
1067
+- 13、Log组件支持输出异常栈信息,底层实现优化
1068
 
1068
 
1069
 ### TODO LIST
1069
 ### TODO LIST
1070
 - 1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
1070
 - 1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;

+ 16 - 6
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobLogger.java Wyświetl plik

19
     /**
19
     /**
20
      * append log
20
      * append log
21
      *
21
      *
22
+     * @param callInfo
22
      * @param appendLog
23
      * @param appendLog
23
      */
24
      */
24
-    public static void log(String appendLog) {
25
+    private static void logDetail(StackTraceElement callInfo, String appendLog) {
25
 
26
 
26
         // logFileName
27
         // logFileName
27
         String logFileName = XxlJobFileAppender.contextHolder.get();
28
         String logFileName = XxlJobFileAppender.contextHolder.get();
29
             return;
30
             return;
30
         }
31
         }
31
 
32
 
32
-        // "yyyy-MM-dd HH:mm:ss [ClassName]-[MethodName]-[LineNumber]-[ThreadName] log";
33
+        /*// "yyyy-MM-dd HH:mm:ss [ClassName]-[MethodName]-[LineNumber]-[ThreadName] log";
33
         StackTraceElement[] stackTraceElements = new Throwable().getStackTrace();
34
         StackTraceElement[] stackTraceElements = new Throwable().getStackTrace();
34
-        StackTraceElement callInfo = stackTraceElements[1];
35
+        StackTraceElement callInfo = stackTraceElements[1];*/
35
 
36
 
36
         StringBuffer stringBuffer = new StringBuffer();
37
         StringBuffer stringBuffer = new StringBuffer();
37
         stringBuffer.append(xxlJobLoggerFormat.format(new Date())).append(" ")
38
         stringBuffer.append(xxlJobLoggerFormat.format(new Date())).append(" ")
55
      * @param appendLogArguments    like "111, true"
56
      * @param appendLogArguments    like "111, true"
56
      */
57
      */
57
     public static void log(String appendLogPattern, Object ... appendLogArguments) {
58
     public static void log(String appendLogPattern, Object ... appendLogArguments) {
58
-        String appendLog = MessageFormat.format(appendLogPattern, appendLogArguments);
59
-        log(appendLog);
59
+
60
+        String appendLog = appendLogPattern;
61
+        if (appendLogArguments!=null && appendLogArguments.length>0) {
62
+            appendLog = MessageFormat.format(appendLogPattern, appendLogArguments);
63
+        }
64
+
65
+        StackTraceElement callInfo = new Throwable().getStackTrace()[1];
66
+        logDetail(callInfo, appendLog);
60
     }
67
     }
61
 
68
 
62
     /**
69
     /**
65
      * @param e
72
      * @param e
66
      */
73
      */
67
     public static void log(Throwable e) {
74
     public static void log(Throwable e) {
75
+
68
         StringWriter stringWriter = new StringWriter();
76
         StringWriter stringWriter = new StringWriter();
69
         e.printStackTrace(new PrintWriter(stringWriter));
77
         e.printStackTrace(new PrintWriter(stringWriter));
70
         String appendLog = stringWriter.toString();
78
         String appendLog = stringWriter.toString();
71
-        log(appendLog);
79
+
80
+        StackTraceElement callInfo = new Throwable().getStackTrace()[1];
81
+        logDetail(callInfo, appendLog);
72
     }
82
     }
73
 
83
 
74
 }
84
 }