Ver código fonte

任务日志取出slf4j依赖

xueli.xue 8 anos atrás
pai
commit
466b4e868a

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

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

+ 0 - 15
xxl-job-core/src/main/java/com/xxl/job/core/handler/IJobHandler.java Ver arquivo

1
 package com.xxl.job.core.handler;
1
 package com.xxl.job.core.handler;
2
 
2
 
3
 import com.xxl.job.core.biz.model.ReturnT;
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
  * remote job handler
6
  * remote job handler
10
  * @author xuxueli 2015-12-19 19:06:38
7
  * @author xuxueli 2015-12-19 19:06:38
11
  */
8
  */
12
 public abstract class IJobHandler {
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
 	 * job handler
12
 	 * job handler
28
 	 * @param params
13
 	 * @param params
29
 	 * @return
14
 	 * @return

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

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

+ 43 - 0
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobLogger.java Ver arquivo

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 Ver arquivo

5
 import com.xxl.job.core.biz.model.TriggerParam;
5
 import com.xxl.job.core.biz.model.TriggerParam;
6
 import com.xxl.job.core.handler.IJobHandler;
6
 import com.xxl.job.core.handler.IJobHandler;
7
 import com.xxl.job.core.log.XxlJobFileAppender;
7
 import com.xxl.job.core.log.XxlJobFileAppender;
8
+import com.xxl.job.core.log.XxlJobLogger;
8
 import org.eclipse.jetty.util.ConcurrentHashSet;
9
 import org.eclipse.jetty.util.ConcurrentHashSet;
9
 import org.slf4j.Logger;
10
 import org.slf4j.Logger;
10
 import org.slf4j.LoggerFactory;
11
 import org.slf4j.LoggerFactory;
80
 						String logFileName = XxlJobFileAppender.makeLogFileName(new Date(triggerParam.getLogDateTim()), triggerParam.getLogId());
81
 						String logFileName = XxlJobFileAppender.makeLogFileName(new Date(triggerParam.getLogDateTim()), triggerParam.getLogId());
81
 
82
 
82
 						XxlJobFileAppender.contextHolder.set(logFileName);
83
 						XxlJobFileAppender.contextHolder.set(logFileName);
83
-						logger.info("----------- xxl-job job execute start -----------");
84
+						XxlJobLogger.log("----------- xxl-job job execute start -----------");
84
 
85
 
85
 						executeResult = handler.execute(handlerParams);
86
 						executeResult = handler.execute(handlerParams);
86
 						if (executeResult == null) {
87
 						if (executeResult == null) {
88
 						}
89
 						}
89
 					} catch (Exception e) {
90
 					} catch (Exception e) {
90
 						if (toStop) {
91
 						if (toStop) {
91
-							logger.error("<br>----------- xxl-job toStop, stopReason:{}", stopReason);
92
+							XxlJobLogger.log("<br>----------- xxl-job toStop, stopReason:" + stopReason);
92
 						}
93
 						}
93
 						logger.error("JobThread Exception:", e);
94
 						logger.error("JobThread Exception:", e);
94
 						StringWriter out = new StringWriter();
95
 						StringWriter out = new StringWriter();
96
 
97
 
97
 						executeResult = new ReturnT<String>(ReturnT.FAIL_CODE, out.toString());
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
 					// callback handler info
104
 					// callback handler info
103
 					if (!toStop) {
105
 					if (!toStop) {
111
 				}
113
 				}
112
 			} catch (Exception e) {
114
 			} catch (Exception e) {
113
 				if (toStop) {
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 Ver arquivo

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