Bladeren bron

任务日志取出slf4j依赖

xueli.xue 8 jaren geleden
bovenliggende
commit
466b4e868a

+ 2 - 4
xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl Bestand weergeven

@@ -173,9 +173,7 @@
173 173
 <textarea class="glueSource_java" style="display:none;" >
174 174
 package com.xxl.job.service.handler;
175 175
 
176
-import org.slf4j.Logger;
177
-import org.slf4j.LoggerFactory;
178
-
176
+import com.xxl.job.core.log.XxlJobLogger;
179 177
 import com.xxl.job.core.biz.model.ReturnT;
180 178
 import com.xxl.job.core.handler.IJobHandler;
181 179
 
@@ -184,7 +182,7 @@ public class DemoGlueJobHandler extends IJobHandler {
184 182
 
185 183
 	@Override
186 184
 	public ReturnT<String> execute(String... params) throws Exception {
187
-		logger.info("XXL-JOB, Hello World.");
185
+		XxlJobLogger.log("XXL-JOB, Hello World.");
188 186
 		return ReturnT.SUCCESS;
189 187
 	}
190 188
 

+ 0 - 15
xxl-job-core/src/main/java/com/xxl/job/core/handler/IJobHandler.java Bestand weergeven

@@ -1,29 +1,14 @@
1 1
 package com.xxl.job.core.handler;
2 2
 
3 3
 import com.xxl.job.core.biz.model.ReturnT;
4
-import com.xxl.job.core.log.XxlJobFileAppender;
5
-import org.slf4j.Logger;
6
-import org.slf4j.LoggerFactory;
7 4
 
8 5
 /**
9 6
  * remote job handler
10 7
  * @author xuxueli 2015-12-19 19:06:38
11 8
  */
12 9
 public abstract class IJobHandler {
13
-	private static Logger logger = LoggerFactory.getLogger(IJobHandler.class);
14 10
 
15 11
 	/**
16
-	 * append log
17
-	 *
18
-	 * @param appendLog
19
-	 */
20
-	public void log(String appendLog) {
21
-		String logFileName = XxlJobFileAppender.contextHolder.get();
22
-		XxlJobFileAppender.appendLog(logFileName, appendLog);
23
-		logger.info("xxl-job log [{}]: {}", logFileName, appendLog);
24
-	}
25
-	
26
-	/**
27 12
 	 * job handler
28 13
 	 * @param params
29 14
 	 * @return

+ 2 - 4
xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/GlueJobHandler.java Bestand weergeven

@@ -2,15 +2,13 @@ package com.xxl.job.core.handler.impl;
2 2
 
3 3
 import com.xxl.job.core.biz.model.ReturnT;
4 4
 import com.xxl.job.core.handler.IJobHandler;
5
-import org.slf4j.Logger;
6
-import org.slf4j.LoggerFactory;
5
+import com.xxl.job.core.log.XxlJobLogger;
7 6
 
8 7
 /**
9 8
  * glue job handler
10 9
  * @author xuxueli 2016-5-19 21:05:45
11 10
  */
12 11
 public class GlueJobHandler extends IJobHandler {
13
-	private static Logger logger = LoggerFactory.getLogger(GlueJobHandler.class);
14 12
 
15 13
 	private long glueUpdatetime;
16 14
 	private IJobHandler jobHandler;
@@ -24,7 +22,7 @@ public class GlueJobHandler extends IJobHandler {
24 22
 
25 23
 	@Override
26 24
 	public ReturnT<String> execute(String... params) throws Exception {
27
-		logger.info("----------- glue.version:{} -----------", glueUpdatetime);
25
+		XxlJobLogger.log("----------- glue.version:{} -----------" + glueUpdatetime);
28 26
 		return jobHandler.execute(params);
29 27
 	}
30 28
 

+ 43 - 0
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobLogger.java Bestand weergeven

@@ -0,0 +1,43 @@
1
+package com.xxl.job.core.log;
2
+
3
+import org.slf4j.Logger;
4
+import org.slf4j.LoggerFactory;
5
+
6
+import java.text.SimpleDateFormat;
7
+import java.util.Date;
8
+
9
+/**
10
+ * Created by xuxueli on 17/4/28.
11
+ */
12
+public class XxlJobLogger {
13
+    private static Logger logger = LoggerFactory.getLogger("xxl-job logger");
14
+    private static SimpleDateFormat xxlJobLoggerFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
15
+
16
+    /**
17
+     * append log
18
+     *
19
+     * @param appendLog
20
+     */
21
+    public static void log(String appendLog) {
22
+
23
+        // "yyyy-MM-dd HH:mm:ss [ClassName]-[MethodName]-[LineNumber]-[ThreadName] log";
24
+        StackTraceElement[] stackTraceElements = new Throwable().getStackTrace();
25
+        StackTraceElement callInfo = stackTraceElements[1];
26
+
27
+        StringBuffer stringBuffer = new StringBuffer();
28
+        stringBuffer.append(xxlJobLoggerFormat.format(new Date())).append(" ")
29
+            .append("["+ callInfo.getClassName() +"]").append("-")
30
+            .append("["+ callInfo.getMethodName() +"]").append("-")
31
+            .append("["+ callInfo.getLineNumber() +"]").append("-")
32
+            .append("["+ Thread.currentThread().getName() +"]").append(" ")
33
+            .append(appendLog!=null?appendLog:"");
34
+        String formatAppendLog = stringBuffer.toString();
35
+
36
+        // appendlog
37
+        String logFileName = XxlJobFileAppender.contextHolder.get();
38
+        XxlJobFileAppender.appendLog(logFileName, formatAppendLog);
39
+
40
+        logger.warn("[{}]: {}", logFileName, formatAppendLog);
41
+    }
42
+
43
+}

+ 15 - 6
xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java Bestand weergeven

@@ -5,6 +5,7 @@ import com.xxl.job.core.biz.model.ReturnT;
5 5
 import com.xxl.job.core.biz.model.TriggerParam;
6 6
 import com.xxl.job.core.handler.IJobHandler;
7 7
 import com.xxl.job.core.log.XxlJobFileAppender;
8
+import com.xxl.job.core.log.XxlJobLogger;
8 9
 import org.eclipse.jetty.util.ConcurrentHashSet;
9 10
 import org.slf4j.Logger;
10 11
 import org.slf4j.LoggerFactory;
@@ -80,7 +81,7 @@ public class JobThread extends Thread{
80 81
 						String logFileName = XxlJobFileAppender.makeLogFileName(new Date(triggerParam.getLogDateTim()), triggerParam.getLogId());
81 82
 
82 83
 						XxlJobFileAppender.contextHolder.set(logFileName);
83
-						logger.info("----------- xxl-job job execute start -----------");
84
+						XxlJobLogger.log("----------- xxl-job job execute start -----------");
84 85
 
85 86
 						executeResult = handler.execute(handlerParams);
86 87
 						if (executeResult == null) {
@@ -88,7 +89,7 @@ public class JobThread extends Thread{
88 89
 						}
89 90
 					} catch (Exception e) {
90 91
 						if (toStop) {
91
-							logger.error("<br>----------- xxl-job toStop, stopReason:{}", stopReason);
92
+							XxlJobLogger.log("<br>----------- xxl-job toStop, stopReason:" + stopReason);
92 93
 						}
93 94
 						logger.error("JobThread Exception:", e);
94 95
 						StringWriter out = new StringWriter();
@@ -96,8 +97,9 @@ public class JobThread extends Thread{
96 97
 
97 98
 						executeResult = new ReturnT<String>(ReturnT.FAIL_CODE, out.toString());
98 99
 					}
99
-					logger.info("----------- xxl-job job execute end ----------- <br> Look : ExecutorParams:{}, Code:{}, Msg:{}",
100
-							new Object[]{handlerParams, executeResult.getCode(), executeResult.getMsg()});
100
+
101
+					XxlJobLogger.log("----------- xxl-job job execute end ----------- <br> " +
102
+									"Look : ExecutorParams:"+ handlerParams +", Code:"+ executeResult.getCode() +", Msg:" + executeResult.getMsg());
101 103
 					
102 104
 					// callback handler info
103 105
 					if (!toStop) {
@@ -111,9 +113,16 @@ public class JobThread extends Thread{
111 113
 				}
112 114
 			} catch (Exception e) {
113 115
 				if (toStop) {
114
-					logger.error("<br>----------- xxl-job toStop, stopReason:{}", stopReason);
116
+					XxlJobLogger.log("<br>----------- xxl-job toStop, stopReason:" + stopReason);
115 117
 				}
116
-				logger.error("----------- xxl-job JobThread Exception:", e);
118
+
119
+				StringWriter stringWriter = new StringWriter();
120
+				PrintWriter printWriter = new PrintWriter(stringWriter, true);
121
+				e.printStackTrace(printWriter);
122
+				printWriter.flush();
123
+				stringWriter.flush();
124
+				String errorMsg = stringWriter.toString();
125
+				XxlJobLogger.log("----------- xxl-job JobThread Exception:" + errorMsg);
117 126
 			}
118 127
 		}
119 128
 		

+ 4 - 5
xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java Bestand weergeven

@@ -3,8 +3,7 @@ package com.xxl.job.executor.service.jobhandler;
3 3
 import com.xxl.job.core.biz.model.ReturnT;
4 4
 import com.xxl.job.core.handler.IJobHandler;
5 5
 import com.xxl.job.core.handler.annotation.JobHander;
6
-import org.slf4j.Logger;
7
-import org.slf4j.LoggerFactory;
6
+import com.xxl.job.core.log.XxlJobLogger;
8 7
 import org.springframework.stereotype.Service;
9 8
 
10 9
 import java.util.concurrent.TimeUnit;
@@ -17,20 +16,20 @@ import java.util.concurrent.TimeUnit;
17 16
  * 1、继承 “IJobHandler” ;
18 17
  * 2、装配到Spring,例如加 “@Service” 注解;
19 18
  * 3、加 “@JobHander” 注解,注解value值为新增任务生成的JobKey的值;多个JobKey用逗号分割;
19
+ * 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
20 20
  * 
21 21
  * @author xuxueli 2015-12-19 19:43:36
22 22
  */
23 23
 @JobHander(value="demoJobHandler")
24 24
 @Service
25 25
 public class DemoJobHandler extends IJobHandler {
26
-	private static transient Logger logger = LoggerFactory.getLogger(DemoJobHandler.class);
27 26
 
28 27
 	@Override
29 28
 	public ReturnT<String> execute(String... params) throws Exception {
30
-		super.log("XXL-JOB, Hello World.");
29
+		XxlJobLogger.log("XXL-JOB, Hello World.");
31 30
 		
32 31
 		for (int i = 0; i < 5; i++) {
33
-			super.log("beat at:" + i);
32
+			XxlJobLogger.log("beat at:" + i);
34 33
 			TimeUnit.SECONDS.sleep(2);
35 34
 		}
36 35
 		return ReturnT.SUCCESS;