rolling日志
This commit is contained in:
parent
ae26cb0c5d
commit
d917c9443b
|
@ -101,18 +101,14 @@ public class JobLogController {
|
|||
ReturnT<String> logStatue = ReturnT.SUCCESS;
|
||||
XxlJobLog jobLog = xxlJobLogDao.load(id);
|
||||
if (jobLog == null) {
|
||||
logStatue = new ReturnT<String>(ReturnT.FAIL_CODE, "查看执行日志失败: 日志ID非法");
|
||||
} else {
|
||||
if (ReturnT.SUCCESS_CODE != jobLog.getTriggerCode()) {
|
||||
logStatue = new ReturnT<String>(ReturnT.FAIL_CODE, "查看执行日志失败: 任务发起调度失败,无法查看执行日志");
|
||||
throw new RuntimeException("抱歉,日志ID非法.");
|
||||
}
|
||||
|
||||
model.addAttribute("triggerCode", jobLog.getTriggerCode());
|
||||
model.addAttribute("handleCode", jobLog.getHandleCode());
|
||||
model.addAttribute("executorAddress", jobLog.getExecutorAddress());
|
||||
model.addAttribute("triggerTime", jobLog.getTriggerTime().getTime());
|
||||
model.addAttribute("logId", jobLog.getId());
|
||||
}
|
||||
|
||||
model.addAttribute("logStatue", logStatue);
|
||||
return "joblog/logdetail";
|
||||
}
|
||||
|
||||
|
|
|
@ -14,9 +14,10 @@
|
|||
position: absolute;
|
||||
/*color:white;background-color:black*/
|
||||
}
|
||||
.logConsoleRunning {
|
||||
#logConsoleRunning {
|
||||
font-size: 20px;
|
||||
margin-top: 7px;
|
||||
float: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -59,35 +60,22 @@
|
|||
</header>
|
||||
|
||||
<div class="content-wrapper" >
|
||||
<pre class="logConsolePre"><div id="logConsole"></div><li class="fa fa-refresh fa-spin logConsoleRunning" ></li></pre>
|
||||
<pre class="logConsolePre"><div id="logConsole"></div>
|
||||
<li class="fa fa-refresh fa-spin" id="logConsoleRunning" ></li>
|
||||
<div style="margin-top: 50px;" ></div>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<@netCommon.commonScript />
|
||||
<script>
|
||||
|
||||
// 参数
|
||||
var running = true; // 允许运行
|
||||
var executorAddress;
|
||||
var triggerTime;
|
||||
var logId;
|
||||
|
||||
// init
|
||||
<#if logStatue.code == 200>
|
||||
running = true;
|
||||
$('.logConsoleRunning').show();
|
||||
|
||||
executorAddress = '${executorAddress}';
|
||||
triggerTime = '${triggerTime}';
|
||||
logId = '${logId}';
|
||||
<#else>
|
||||
running = false;
|
||||
$('.logConsoleRunning').hide();
|
||||
|
||||
$('.logConsole').append('${logStatue.msg}');
|
||||
</#if>
|
||||
|
||||
var triggerCode = '${triggerCode}';
|
||||
var handleCode = '${handleCode}';
|
||||
var executorAddress = '${executorAddress}';
|
||||
var triggerTime = '${triggerTime}';
|
||||
var logId = '${logId}';
|
||||
</script>
|
||||
<script src="${request.contextPath}/static/js/logdetail.index.1.js"></script>
|
||||
|
||||
|
|
|
@ -1,33 +1,28 @@
|
|||
$(function() {
|
||||
|
||||
// valid
|
||||
if (!running) {
|
||||
// trigger fail, end
|
||||
if (triggerCode != 200) {
|
||||
$('#logConsoleRunning').hide();
|
||||
$('#logConsole').append('<span style="color: red;">任务发起调度失败,无法查看执行日志</span>');
|
||||
return;
|
||||
}
|
||||
|
||||
// 加载日志
|
||||
// pull log
|
||||
var fromLineNum = 0;
|
||||
var pullFailCount = 0;
|
||||
function pullLog() {
|
||||
|
||||
// pullFailCount, max=20
|
||||
if (pullFailCount >= 20) {
|
||||
console.log("pullLog fail-count limit");
|
||||
running = false;
|
||||
}
|
||||
|
||||
// valid
|
||||
if (!running) {
|
||||
$('.logConsoleRunning').hide();
|
||||
logRun = window.clearInterval(logRun)
|
||||
if (pullFailCount++ > 20) {
|
||||
logRunStop('<span style="color: red;">终止请求Rolling日志,请求失败次数超上限,可刷新页面重新加载日志</span>');
|
||||
return;
|
||||
}
|
||||
|
||||
// load
|
||||
console.log("pullLog, fromLineNum:" + fromLineNum);
|
||||
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
async: false, // async, avoid js invoke pagelist before jobId data init
|
||||
async: false, // sync, make log ordered
|
||||
url : base_url + '/joblog/logDetailCat',
|
||||
data : {
|
||||
"executorAddress":executorAddress,
|
||||
|
@ -37,7 +32,7 @@ $(function() {
|
|||
},
|
||||
dataType : "json",
|
||||
success : function(data){
|
||||
pullFailCount++;
|
||||
|
||||
if (data.code == 200) {
|
||||
if (!data.content) {
|
||||
console.log('pullLog fail');
|
||||
|
@ -59,20 +54,35 @@ $(function() {
|
|||
|
||||
// valid end
|
||||
if (data.content.end) {
|
||||
running = false;
|
||||
console.log("pullLog already file-end");
|
||||
logRunStop('<span style="color: green;">[Rolling Log Finish]</span>');
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
ComAlertTec.show(data.msg);
|
||||
console.log('pullLog fail:'+data.msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 周期运行
|
||||
// pull first page
|
||||
pullLog();
|
||||
|
||||
// handler already callback, end
|
||||
if (handleCode > 0) {
|
||||
logRunStop('<span style="color: green;">[Log Finish]</span>');
|
||||
return;
|
||||
}
|
||||
|
||||
// round until end
|
||||
var logRun = setInterval(function () {
|
||||
pullLog()
|
||||
}, 3000);
|
||||
function logRunStop(content){
|
||||
$('#logConsoleRunning').hide();
|
||||
logRun = window.clearInterval(logRun);
|
||||
$('#logConsole').append(content);
|
||||
}
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
|
|
@ -8,6 +8,13 @@ import java.io.Serializable;
|
|||
public class LogResult implements Serializable {
|
||||
private static final long serialVersionUID = 42L;
|
||||
|
||||
public LogResult(int fromLineNum, int toLineNum, String logContent, boolean isEnd) {
|
||||
this.fromLineNum = fromLineNum;
|
||||
this.toLineNum = toLineNum;
|
||||
this.logContent = logContent;
|
||||
this.isEnd = isEnd;
|
||||
}
|
||||
|
||||
private int fromLineNum;
|
||||
private int toLineNum;
|
||||
private String logContent;
|
||||
|
|
|
@ -122,12 +122,12 @@ public class XxlJobFileAppender extends AppenderSkeleton {
|
|||
|
||||
// valid log file
|
||||
if (logFileName==null || logFileName.trim().length()==0) {
|
||||
return null;
|
||||
return new LogResult(fromLineNum, -1, "readLog fail, logFile not found", true);
|
||||
}
|
||||
File logFile = new File(filePath, logFileName);
|
||||
|
||||
if (!logFile.exists()) {
|
||||
return null;
|
||||
return new LogResult(fromLineNum, -1, "readLog fail, logFile not exists", true);
|
||||
}
|
||||
|
||||
// read file
|
||||
|
@ -157,11 +157,7 @@ public class XxlJobFileAppender extends AppenderSkeleton {
|
|||
}
|
||||
|
||||
// result
|
||||
LogResult logResult = new LogResult();
|
||||
logResult.setFromLineNum(fromLineNum);
|
||||
logResult.setToLineNum(toLineNum);
|
||||
logResult.setLogContent(logContentBuffer.toString());
|
||||
logResult.setEnd(false);
|
||||
LogResult logResult = new LogResult(fromLineNum, toLineNum, logContentBuffer.toString(), false);
|
||||
return logResult;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue