Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
熊鹏飞
/
xxljob220
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d917c944
authored
Mar 24, 2017
by
xueli.xue
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
rolling日志
parent
ae26cb0c
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
53 additions
and
56 deletions
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/logdetail.ftl
xxl-job-admin/src/main/webapp/static/js/logdetail.index.1.js
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogResult.java
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
View file @
d917c944
...
@@ -101,18 +101,14 @@ public class JobLogController {
...
@@ -101,18 +101,14 @@ public class JobLogController {
ReturnT
<
String
>
logStatue
=
ReturnT
.
SUCCESS
;
ReturnT
<
String
>
logStatue
=
ReturnT
.
SUCCESS
;
XxlJobLog
jobLog
=
xxlJobLogDao
.
load
(
id
);
XxlJobLog
jobLog
=
xxlJobLogDao
.
load
(
id
);
if
(
jobLog
==
null
)
{
if
(
jobLog
==
null
)
{
logStatue
=
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"查看执行日志失败: 日志ID非法"
);
throw
new
RuntimeException
(
"抱歉,日志ID非法."
);
}
else
{
if
(
ReturnT
.
SUCCESS_CODE
!=
jobLog
.
getTriggerCode
())
{
logStatue
=
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"查看执行日志失败: 任务发起调度失败,无法查看执行日志"
);
}
}
model
.
addAttribute
(
"triggerCode"
,
jobLog
.
getTriggerCode
());
model
.
addAttribute
(
"handleCode"
,
jobLog
.
getHandleCode
());
model
.
addAttribute
(
"executorAddress"
,
jobLog
.
getExecutorAddress
());
model
.
addAttribute
(
"executorAddress"
,
jobLog
.
getExecutorAddress
());
model
.
addAttribute
(
"triggerTime"
,
jobLog
.
getTriggerTime
().
getTime
());
model
.
addAttribute
(
"triggerTime"
,
jobLog
.
getTriggerTime
().
getTime
());
model
.
addAttribute
(
"logId"
,
jobLog
.
getId
());
model
.
addAttribute
(
"logId"
,
jobLog
.
getId
());
}
model
.
addAttribute
(
"logStatue"
,
logStatue
);
return
"joblog/logdetail"
;
return
"joblog/logdetail"
;
}
}
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/logdetail.ftl
View file @
d917c944
...
@@ -14,9 +14,10 @@
...
@@ -14,9 +14,10 @@
position
:
absolute
;
position
:
absolute
;
/*color:white;background-color:black*/
/*color:white;background-color:black*/
}
}
.
logConsoleRunning
{
#
logConsoleRunning
{
font-size
:
20px
;
font-size
:
20px
;
margin-top
:
7px
;
margin-top
:
7px
;
float
:
left
;
}
}
</style>
</style>
</head>
</head>
...
@@ -59,35 +60,22 @@
...
@@ -59,35 +60,22 @@
</header>
</header>
<div
class=
"content-wrapper"
>
<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>
</div>
</div>
<
@
netCommon
.
commonScript
/>
<
@
netCommon
.
commonScript
/>
<script>
<script>
// 参数
// 参数
var
running
=
true
;
// 允许运行
var
triggerCode
=
'${triggerCode}'
;
var
executorAddress
;
var
handleCode
=
'${handleCode}'
;
var
triggerTime
;
var
executorAddress
=
'${executorAddress}'
;
var
logId
;
var
triggerTime
=
'${triggerTime}'
;
var
logId
=
'${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>
</script>
</script>
<script
src=
"${request.contextPath}/static/js/logdetail.index.1.js"
></script>
<script
src=
"${request.contextPath}/static/js/logdetail.index.1.js"
></script>
...
...
xxl-job-admin/src/main/webapp/static/js/logdetail.index.1.js
View file @
d917c944
$
(
function
()
{
$
(
function
()
{
// valid
// trigger fail, end
if
(
!
running
)
{
if
(
triggerCode
!=
200
)
{
$
(
'#logConsoleRunning'
).
hide
();
$
(
'#logConsole'
).
append
(
'<span style="color: red;">任务发起调度失败,无法查看执行日志</span>'
);
return
;
return
;
}
}
// 加载日志
// pull log
var
fromLineNum
=
0
;
var
fromLineNum
=
0
;
var
pullFailCount
=
0
;
var
pullFailCount
=
0
;
function
pullLog
()
{
function
pullLog
()
{
// pullFailCount, max=20
// pullFailCount, max=20
if
(
pullFailCount
>=
20
)
{
if
(
pullFailCount
++
>
20
)
{
console
.
log
(
"pullLog fail-count limit"
);
logRunStop
(
'<span style="color: red;">终止请求Rolling日志,请求失败次数超上限,可刷新页面重新加载日志</span>'
);
running
=
false
;
}
// valid
if
(
!
running
)
{
$
(
'.logConsoleRunning'
).
hide
();
logRun
=
window
.
clearInterval
(
logRun
)
return
;
return
;
}
}
// load
// load
console
.
log
(
"pullLog, fromLineNum:"
+
fromLineNum
);
console
.
log
(
"pullLog, fromLineNum:"
+
fromLineNum
);
$
.
ajax
({
$
.
ajax
({
type
:
'POST'
,
type
:
'POST'
,
async
:
false
,
// async, avoid js invoke pagelist before jobId data init
async
:
false
,
// sync, make log ordered
url
:
base_url
+
'/joblog/logDetailCat'
,
url
:
base_url
+
'/joblog/logDetailCat'
,
data
:
{
data
:
{
"executorAddress"
:
executorAddress
,
"executorAddress"
:
executorAddress
,
...
@@ -37,7 +32,7 @@ $(function() {
...
@@ -37,7 +32,7 @@ $(function() {
},
},
dataType
:
"json"
,
dataType
:
"json"
,
success
:
function
(
data
){
success
:
function
(
data
){
pullFailCount
++
;
if
(
data
.
code
==
200
)
{
if
(
data
.
code
==
200
)
{
if
(
!
data
.
content
)
{
if
(
!
data
.
content
)
{
console
.
log
(
'pullLog fail'
);
console
.
log
(
'pullLog fail'
);
...
@@ -59,20 +54,35 @@ $(function() {
...
@@ -59,20 +54,35 @@ $(function() {
// valid end
// valid end
if
(
data
.
content
.
end
)
{
if
(
data
.
content
.
end
)
{
running
=
false
;
logRunStop
(
'<span style="color: green;">[Rolling Log Finish]</span>'
)
;
console
.
log
(
"pullLog already file-end"
)
;
return
;
}
}
}
else
{
}
else
{
ComAlertTec
.
show
(
data
.
msg
);
console
.
log
(
'pullLog fail:'
+
data
.
msg
);
}
}
}
}
});
});
}
}
// 周期运行
// pull first page
pullLog
();
pullLog
();
// handler already callback, end
if
(
handleCode
>
0
)
{
logRunStop
(
'<span style="color: green;">[Log Finish]</span>'
);
return
;
}
// round until end
var
logRun
=
setInterval
(
function
()
{
var
logRun
=
setInterval
(
function
()
{
pullLog
()
pullLog
()
},
3000
);
},
3000
);
function
logRunStop
(
content
){
$
(
'#logConsoleRunning'
).
hide
();
logRun
=
window
.
clearInterval
(
logRun
);
$
(
'#logConsole'
).
append
(
content
);
}
});
});
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogResult.java
View file @
d917c944
...
@@ -8,6 +8,13 @@ import java.io.Serializable;
...
@@ -8,6 +8,13 @@ import java.io.Serializable;
public
class
LogResult
implements
Serializable
{
public
class
LogResult
implements
Serializable
{
private
static
final
long
serialVersionUID
=
42L
;
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
fromLineNum
;
private
int
toLineNum
;
private
int
toLineNum
;
private
String
logContent
;
private
String
logContent
;
...
...
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java
View file @
d917c944
...
@@ -122,12 +122,12 @@ public class XxlJobFileAppender extends AppenderSkeleton {
...
@@ -122,12 +122,12 @@ public class XxlJobFileAppender extends AppenderSkeleton {
// valid log file
// valid log file
if
(
logFileName
==
null
||
logFileName
.
trim
().
length
()==
0
)
{
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
);
File
logFile
=
new
File
(
filePath
,
logFileName
);
if
(!
logFile
.
exists
())
{
if
(!
logFile
.
exists
())
{
return
null
;
return
new
LogResult
(
fromLineNum
,
-
1
,
"readLog fail, logFile not exists"
,
true
)
;
}
}
// read file
// read file
...
@@ -157,11 +157,7 @@ public class XxlJobFileAppender extends AppenderSkeleton {
...
@@ -157,11 +157,7 @@ public class XxlJobFileAppender extends AppenderSkeleton {
}
}
// result
// result
LogResult
logResult
=
new
LogResult
();
LogResult
logResult
=
new
LogResult
(
fromLineNum
,
toLineNum
,
logContentBuffer
.
toString
(),
false
);
logResult
.
setFromLineNum
(
fromLineNum
);
logResult
.
setToLineNum
(
toLineNum
);
logResult
.
setLogContent
(
logContentBuffer
.
toString
());
logResult
.
setEnd
(
false
);
return
logResult
;
return
logResult
;
/*
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment