Skip to content

Commit c90d154

Browse files
authored
Merge pull request #3850 from benfromchina/master
解决 int 接收 bigint 型 xxl_job_info.id 导致的日志查看报错、Dockerfile 增加环境变量 LOG_HOME 指定日志路径
2 parents 2c5ce03 + 810a59b commit c90d154

File tree

4 files changed

+71
-4
lines changed

4 files changed

+71
-4
lines changed

xxl-job-admin/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ FROM openjdk:21-jdk-slim
33

44
MAINTAINER xuxueli
55

6+
ENV LOG_HOME=/data/applogs
67
ENV PARAMS=""
78

89
ENV TZ=PRC
910
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
1011

1112
ADD target/xxl-job-admin-*.jar /app.jar
1213

13-
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]
14+
ENTRYPOINT ["sh","-c","java -DLOG_HOME=$LOG_HOME -jar $JAVA_OPTS /app.jar $PARAMS"]

xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,59 @@ public Response<PageModel<XxlJobLog>> pageList(HttpServletRequest request,
160160
return Response.ofSuccess(pageModel);
161161
}
162162

163+
@RequestMapping("/logDetailPage")
164+
public String logDetailPage(HttpServletRequest request, @RequestParam("id") long id, Model model){
165+
166+
// base check
167+
XxlJobLog jobLog = xxlJobLogMapper.load(id);
168+
if (jobLog == null) {
169+
throw new RuntimeException(I18nUtil.getString("joblog_logid_unvalid"));
170+
}
171+
172+
// valid permission
173+
JobGroupPermissionUtil.validJobGroupPermission(request, jobLog.getJobGroup());
174+
175+
// data
176+
model.addAttribute("triggerCode", jobLog.getTriggerCode());
177+
model.addAttribute("handleCode", jobLog.getHandleCode());
178+
model.addAttribute("logId", jobLog.getId());
179+
return "joblog/joblog.detail";
180+
}
181+
182+
@RequestMapping("/logDetailCat")
183+
@ResponseBody
184+
public Response<LogResult> logDetailCat(@RequestParam("logId") long logId, @RequestParam("fromLineNum") int fromLineNum){
185+
try {
186+
// valid
187+
XxlJobLog jobLog = xxlJobLogMapper.load(logId); // todo, need to improve performance
188+
if (jobLog == null) {
189+
return Response.ofFail(I18nUtil.getString("joblog_logid_unvalid"));
190+
}
191+
192+
// log cat
193+
ExecutorBiz executorBiz = XxlJobAdminBootstrap.getExecutorBiz(jobLog.getExecutorAddress());
194+
Response<LogResult> logResult = executorBiz.log(new LogRequest(jobLog.getTriggerTime().getTime(), logId, fromLineNum));
195+
196+
// is end
197+
if (logResult.getData()!=null && logResult.getData().getFromLineNum() > logResult.getData().getToLineNum()) {
198+
if (jobLog.getHandleCode() > 0) {
199+
logResult.getData().setEnd(true);
200+
}
201+
}
202+
203+
// fix xss
204+
if (logResult.getData()!=null && StringTool.isNotBlank(logResult.getData().getLogContent())) {
205+
String newLogContent = filter(logResult.getData().getLogContent());
206+
logResult.getData().setLogContent(newLogContent);
207+
}
208+
209+
return logResult;
210+
} catch (Exception e) {
211+
logger.error(e.getMessage(), e);
212+
return Response.ofFail(e.getMessage());
213+
}
214+
}
215+
163216
/**
164217
* filter xss tag
165218
*/
@@ -191,7 +244,7 @@ private String filter(String originData){
191244

192245
@RequestMapping("/logKill")
193246
@ResponseBody
194-
public Response<String> logKill(HttpServletRequest request, @RequestParam("id") int id){
247+
public Response<String> logKill(HttpServletRequest request, @RequestParam("id") long id){
195248
// base check
196249
XxlJobLog log = xxlJobLogMapper.load(id);
197250
XxlJobInfo jobInfo = xxlJobInfoMapper.loadById(log.getJobId());
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM openjdk:21-jdk-slim
2+
MAINTAINER xuxueli
3+
4+
ENV LOG_HOME=/data/applogs
5+
ENV PARAMS=""
6+
7+
ENV TZ=PRC
8+
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
9+
10+
ADD target/xxl-job-executor-sample-springboot-ai*.jar /app.jar
11+
12+
ENTRYPOINT ["sh","-c","java -DLOG_HOME=$LOG_HOME -jar $JAVA_OPTS /app.jar $PARAMS"]
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
FROM openjdk:8-jre-slim
1+
FROM openjdk:21-jdk-slim
22
MAINTAINER xuxueli
33

4+
ENV LOG_HOME=/data/applogs
45
ENV PARAMS=""
56

67
ENV TZ=PRC
78
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
89

910
ADD target/xxl-job-executor-sample-springboot-*.jar /app.jar
1011

11-
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]
12+
ENTRYPOINT ["sh","-c","java -DLOG_HOME=$LOG_HOME -jar $JAVA_OPTS /app.jar $PARAMS"]

0 commit comments

Comments
 (0)