Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
pentaLiker
DolphinScheduler
提交
c4b53dfb
DolphinScheduler
项目概览
pentaLiker
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c4b53dfb
编写于
8月 31, 2019
作者:
L
lidongdai
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'upstream/dev' into dev
上级
7992f530
f00ab67c
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
116 addition
and
389 deletion
+116
-389
dockerfile/conf/escheduler/conf/worker_logback.xml
dockerfile/conf/escheduler/conf/worker_logback.xml
+16
-9
escheduler-api/src/main/resources/combined_logback.xml
escheduler-api/src/main/resources/combined_logback.xml
+16
-9
escheduler-server/src/main/java/cn/escheduler/server/utils/LoggerUtils.java
...src/main/java/cn/escheduler/server/utils/LoggerUtils.java
+6
-1
escheduler-server/src/main/java/cn/escheduler/server/worker/log/TaskLogDiscriminator.java
...cn/escheduler/server/worker/log/TaskLogDiscriminator.java
+53
-0
escheduler-server/src/main/java/cn/escheduler/server/worker/log/TaskLogFilter.java
...n/java/cn/escheduler/server/worker/log/TaskLogFilter.java
+2
-1
escheduler-server/src/main/java/cn/escheduler/server/worker/log/TaskLogger.java
...main/java/cn/escheduler/server/worker/log/TaskLogger.java
+0
-345
escheduler-server/src/main/java/cn/escheduler/server/worker/runner/TaskScheduleThread.java
...n/escheduler/server/worker/runner/TaskScheduleThread.java
+1
-7
escheduler-server/src/main/java/cn/escheduler/server/worker/task/AbstractCommandExecutor.java
...scheduler/server/worker/task/AbstractCommandExecutor.java
+4
-2
escheduler-server/src/main/resources/worker_logback.xml
escheduler-server/src/main/resources/worker_logback.xml
+16
-9
escheduler-server/src/test/java/cn/escheduler/server/worker/shell/ShellCommandExecutorTest.java
...heduler/server/worker/shell/ShellCommandExecutorTest.java
+1
-3
escheduler-server/src/test/java/cn/escheduler/server/worker/sql/SqlExecutorTest.java
...java/cn/escheduler/server/worker/sql/SqlExecutorTest.java
+1
-3
未找到文件。
dockerfile/conf/escheduler/conf/worker_logback.xml
浏览文件 @
c4b53dfb
...
@@ -9,19 +9,26 @@
...
@@ -9,19 +9,26 @@
<charset>
UTF-8
</charset>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"TASKLOGFILE"
class=
"c
n.escheduler.server.worker.log.TaskLo
gAppender"
>
<appender
name=
"TASKLOGFILE"
class=
"c
h.qos.logback.classic.sift.Siftin
gAppender"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
INFO
</level>
<level>
INFO
</level>
</filter>
</filter>
<filter
class=
"cn.escheduler.server.worker.log.TaskLogFilter"
></filter>
<filter
class=
"cn.escheduler.server.worker.log.TaskLogFilter"
></filter>
<file>
${log.base}/{processDefinitionId}/{processInstanceId}/{taskInstanceId}.log
</file>
<Discriminator
class=
"cn.escheduler.server.worker.log.TaskLogDiscriminator"
>
<encoder>
<key>
taskAppId
</key>
<pattern>
</Discriminator>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
<sift>
</pattern>
<appender
name=
"FILE-${taskAppId}"
class=
"ch.qos.logback.core.FileAppender"
>
<charset>
UTF-8
</charset>
<file>
${log.base}/${taskAppId}.log
</file>
</encoder>
<encoder>
<append>
true
</append>
<pattern>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
</pattern>
<charset>
UTF-8
</charset>
</encoder>
<append>
true
</append>
</appender>
</sift>
</appender>
</appender>
<appender
name=
"WORKERLOGFILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"WORKERLOGFILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
...
...
escheduler-api/src/main/resources/combined_logback.xml
浏览文件 @
c4b53dfb
...
@@ -9,19 +9,26 @@
...
@@ -9,19 +9,26 @@
<charset>
UTF-8
</charset>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"TASKLOGFILE"
class=
"c
n.escheduler.server.worker.log.TaskLo
gAppender"
>
<appender
name=
"TASKLOGFILE"
class=
"c
h.qos.logback.classic.sift.Siftin
gAppender"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
INFO
</level>
<level>
INFO
</level>
</filter>
</filter>
<filter
class=
"cn.escheduler.server.worker.log.TaskLogFilter"
></filter>
<filter
class=
"cn.escheduler.server.worker.log.TaskLogFilter"
></filter>
<file>
${log.base}/{processDefinitionId}/{processInstanceId}/{taskInstanceId}.log
</file>
<Discriminator
class=
"cn.escheduler.server.worker.log.TaskLogDiscriminator"
>
<encoder>
<key>
taskAppId
</key>
<pattern>
</Discriminator>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
<sift>
</pattern>
<appender
name=
"FILE-${taskAppId}"
class=
"ch.qos.logback.core.FileAppender"
>
<charset>
UTF-8
</charset>
<file>
${log.base}/${taskAppId}.log
</file>
</encoder>
<encoder>
<append>
true
</append>
<pattern>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
</pattern>
<charset>
UTF-8
</charset>
</encoder>
<append>
true
</append>
</appender>
</sift>
</appender>
</appender>
<appender
name=
"COMBINEDLOGFILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"COMBINEDLOGFILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
...
...
escheduler-server/src/main/java/cn/escheduler/server/utils/LoggerUtils.java
浏览文件 @
c4b53dfb
...
@@ -34,6 +34,11 @@ public class LoggerUtils {
...
@@ -34,6 +34,11 @@ public class LoggerUtils {
*/
*/
private
static
final
Pattern
APPLICATION_REGEX
=
Pattern
.
compile
(
Constants
.
APPLICATION_REGEX
);
private
static
final
Pattern
APPLICATION_REGEX
=
Pattern
.
compile
(
Constants
.
APPLICATION_REGEX
);
/**
* Task Logger's prefix
*/
public
static
final
String
TASK_LOGGER_INFO_PREFIX
=
"TaskLogInfo"
;
/**
/**
* build job id
* build job id
* @param affix
* @param affix
...
@@ -46,7 +51,7 @@ public class LoggerUtils {
...
@@ -46,7 +51,7 @@ public class LoggerUtils {
int
processDefId
,
int
processDefId
,
int
processInstId
,
int
processInstId
,
int
taskId
){
int
taskId
){
return
String
.
format
(
"%s
_%s_%s_
%s"
,
affix
,
return
String
.
format
(
"%s
-%s/%s/
%s"
,
affix
,
processDefId
,
processDefId
,
processInstId
,
processInstId
,
taskId
);
taskId
);
...
...
escheduler-server/src/main/java/cn/escheduler/server/worker/log/TaskLog
Appende
r.java
→
escheduler-server/src/main/java/cn/escheduler/server/worker/log/TaskLog
Discriminato
r.java
浏览文件 @
c4b53dfb
...
@@ -17,41 +17,37 @@
...
@@ -17,41 +17,37 @@
package
cn.escheduler.server.worker.log
;
package
cn.escheduler.server.worker.log
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.FileAppender
;
import
ch.qos.logback.core.sift.AbstractDiscriminator
;
import
org.slf4j.Logger
;
import
cn.escheduler.server.utils.LoggerUtils
;
import
org.slf4j.LoggerFactory
;
/**
public
class
TaskLogDiscriminator
extends
AbstractDiscriminator
<
ILoggingEvent
>
{
* task log appender
*/
public
class
TaskLogAppender
extends
FileAppender
<
ILoggingEvent
>
{
private
String
currentlyActiveFile
;
@Override
private
String
key
;
protected
void
append
(
ILoggingEvent
event
)
{
if
(
currentlyActiveFile
==
null
){
/**
currentlyActiveFile
=
getFile
();
* logger name should be like:
* Task Logger name should be like: TaskLogInfo-{processDefinitionId}/{processInstanceId}/{taskInstanceId}
*/
public
String
getDiscriminatingValue
(
ILoggingEvent
event
)
{
String
loggerName
=
event
.
getLoggerName
();
String
prefix
=
LoggerUtils
.
TASK_LOGGER_INFO_PREFIX
+
"-"
;
if
(
loggerName
.
startsWith
(
prefix
))
{
return
loggerName
.
substring
(
prefix
.
length
());
}
else
{
return
"unknown_task"
;
}
}
String
activeFile
=
currentlyActiveFile
;
}
// thread name: taskThreadName-processDefineId_processInstanceId_taskInstanceId
String
threadName
=
event
.
getThreadName
();
String
[]
threadNameArr
=
threadName
.
split
(
"-"
);
// logId = processDefineId_processInstanceId_taskInstanceId
String
logId
=
threadNameArr
[
1
];
// split logId
threadNameArr
=
logId
.
split
(
"_"
);
String
processDefineId
=
threadNameArr
[
0
];
String
processInstanceId
=
threadNameArr
[
1
];
String
taskInstanceId
=
threadNameArr
[
2
];
activeFile
=
activeFile
.
replace
(
"{processDefinitionId}"
,
processDefineId
);
@Override
activeFile
=
activeFile
.
replace
(
"{processInstanceId}"
,
processInstanceId
);
public
void
start
()
{
activeFile
=
activeFile
.
replace
(
"{taskInstanceId}"
,
taskInstanceId
);
started
=
true
;
}
public
String
getKey
()
{
return
key
;
}
setFile
(
activeFile
);
public
void
setKey
(
String
key
)
{
start
();
this
.
key
=
key
;
super
.
subAppend
(
event
);
}
}
}
}
escheduler-server/src/main/java/cn/escheduler/server/worker/log/TaskLogFilter.java
浏览文件 @
c4b53dfb
...
@@ -19,6 +19,7 @@ package cn.escheduler.server.worker.log;
...
@@ -19,6 +19,7 @@ package cn.escheduler.server.worker.log;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
import
ch.qos.logback.core.spi.FilterReply
;
import
cn.escheduler.server.utils.LoggerUtils
;
/**
/**
* task log filter
* task log filter
...
@@ -27,7 +28,7 @@ public class TaskLogFilter extends Filter<ILoggingEvent> {
...
@@ -27,7 +28,7 @@ public class TaskLogFilter extends Filter<ILoggingEvent> {
@Override
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
public
FilterReply
decide
(
ILoggingEvent
event
)
{
if
(
event
.
get
ThreadName
().
startsWith
(
"TaskLogInfo-"
))
{
if
(
event
.
get
LoggerName
().
startsWith
(
LoggerUtils
.
TASK_LOGGER_INFO_PREFIX
))
{
return
FilterReply
.
ACCEPT
;
return
FilterReply
.
ACCEPT
;
}
}
return
FilterReply
.
DENY
;
return
FilterReply
.
DENY
;
...
...
escheduler-server/src/main/java/cn/escheduler/server/worker/log/TaskLogger.java
已删除
100644 → 0
浏览文件 @
7992f530
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
cn.escheduler.server.worker.log
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.Marker
;
/**
* custom task logger
*/
public
class
TaskLogger
implements
Logger
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
TaskLogger
.
class
);
private
String
taskAppId
;
public
TaskLogger
(
String
taskAppId
)
{
this
.
taskAppId
=
taskAppId
;
}
private
String
addJobId
(
String
msg
)
{
return
String
.
format
(
"[taskAppId=%s] %s"
,
taskAppId
,
msg
);
}
@Override
public
String
getName
()
{
return
logger
.
getName
();
}
@Override
public
boolean
isTraceEnabled
()
{
return
logger
.
isTraceEnabled
();
}
@Override
public
void
trace
(
String
msg
)
{
logger
.
trace
(
addJobId
(
msg
));
}
@Override
public
void
trace
(
String
format
,
Object
arg
)
{
logger
.
trace
(
addJobId
(
format
),
arg
);
}
@Override
public
void
trace
(
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
trace
(
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
trace
(
String
format
,
Object
...
arguments
)
{
logger
.
trace
(
addJobId
(
format
),
arguments
);
}
@Override
public
void
trace
(
String
msg
,
Throwable
t
)
{
logger
.
trace
(
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isTraceEnabled
(
Marker
marker
)
{
return
logger
.
isTraceEnabled
(
marker
);
}
@Override
public
void
trace
(
Marker
marker
,
String
msg
)
{
logger
.
trace
(
marker
,
addJobId
(
msg
));
}
@Override
public
void
trace
(
Marker
marker
,
String
format
,
Object
arg
)
{
logger
.
trace
(
marker
,
addJobId
(
format
),
arg
);
}
@Override
public
void
trace
(
Marker
marker
,
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
trace
(
marker
,
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
trace
(
Marker
marker
,
String
format
,
Object
...
argArray
)
{
logger
.
trace
(
marker
,
addJobId
(
format
),
argArray
);
}
@Override
public
void
trace
(
Marker
marker
,
String
msg
,
Throwable
t
)
{
logger
.
trace
(
marker
,
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isDebugEnabled
()
{
return
logger
.
isDebugEnabled
();
}
@Override
public
void
debug
(
String
msg
)
{
logger
.
debug
(
addJobId
(
msg
));
}
@Override
public
void
debug
(
String
format
,
Object
arg
)
{
logger
.
debug
(
addJobId
(
format
),
arg
);
}
@Override
public
void
debug
(
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
debug
(
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
debug
(
String
format
,
Object
...
arguments
)
{
logger
.
debug
(
addJobId
(
format
),
arguments
);
}
@Override
public
void
debug
(
String
msg
,
Throwable
t
)
{
logger
.
debug
(
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isDebugEnabled
(
Marker
marker
)
{
return
logger
.
isDebugEnabled
();
}
@Override
public
void
debug
(
Marker
marker
,
String
msg
)
{
logger
.
debug
(
marker
,
addJobId
(
msg
));
}
@Override
public
void
debug
(
Marker
marker
,
String
format
,
Object
arg
)
{
logger
.
debug
(
marker
,
addJobId
(
format
),
arg
);
}
@Override
public
void
debug
(
Marker
marker
,
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
debug
(
marker
,
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
debug
(
Marker
marker
,
String
format
,
Object
...
arguments
)
{
logger
.
debug
(
marker
,
addJobId
(
format
),
arguments
);
}
@Override
public
void
debug
(
Marker
marker
,
String
msg
,
Throwable
t
)
{
logger
.
debug
(
marker
,
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isInfoEnabled
()
{
return
logger
.
isInfoEnabled
();
}
@Override
public
void
info
(
String
msg
)
{
logger
.
info
(
addJobId
(
msg
));
}
@Override
public
void
info
(
String
format
,
Object
arg
)
{
logger
.
info
(
addJobId
(
format
),
arg
);
}
@Override
public
void
info
(
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
info
(
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
info
(
String
format
,
Object
...
arguments
)
{
logger
.
info
(
addJobId
(
format
),
arguments
);
}
@Override
public
void
info
(
String
msg
,
Throwable
t
)
{
logger
.
info
(
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isInfoEnabled
(
Marker
marker
)
{
return
logger
.
isInfoEnabled
();
}
@Override
public
void
info
(
Marker
marker
,
String
msg
)
{
logger
.
info
(
marker
,
addJobId
(
msg
));
}
@Override
public
void
info
(
Marker
marker
,
String
format
,
Object
arg
)
{
logger
.
info
(
marker
,
addJobId
(
format
),
arg
);
}
@Override
public
void
info
(
Marker
marker
,
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
info
(
marker
,
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
info
(
Marker
marker
,
String
format
,
Object
...
arguments
)
{
logger
.
info
(
marker
,
addJobId
(
format
),
arguments
);
}
@Override
public
void
info
(
Marker
marker
,
String
msg
,
Throwable
t
)
{
logger
.
info
(
marker
,
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isWarnEnabled
()
{
return
logger
.
isWarnEnabled
();
}
@Override
public
void
warn
(
String
msg
)
{
logger
.
warn
(
addJobId
(
msg
));
}
@Override
public
void
warn
(
String
format
,
Object
arg
)
{
logger
.
warn
(
addJobId
(
format
),
arg
);
}
@Override
public
void
warn
(
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
warn
(
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
warn
(
String
format
,
Object
...
arguments
)
{
logger
.
warn
(
addJobId
(
format
),
arguments
);
}
@Override
public
void
warn
(
String
msg
,
Throwable
t
)
{
logger
.
warn
(
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isWarnEnabled
(
Marker
marker
)
{
return
logger
.
isWarnEnabled
();
}
@Override
public
void
warn
(
Marker
marker
,
String
msg
)
{
logger
.
warn
(
marker
,
addJobId
(
msg
));
}
@Override
public
void
warn
(
Marker
marker
,
String
format
,
Object
arg
)
{
logger
.
warn
(
marker
,
addJobId
(
format
),
arg
);
}
@Override
public
void
warn
(
Marker
marker
,
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
warn
(
marker
,
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
warn
(
Marker
marker
,
String
format
,
Object
...
arguments
)
{
logger
.
warn
(
marker
,
addJobId
(
format
),
arguments
);
}
@Override
public
void
warn
(
Marker
marker
,
String
msg
,
Throwable
t
)
{
logger
.
warn
(
marker
,
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isErrorEnabled
()
{
return
logger
.
isErrorEnabled
();
}
@Override
public
void
error
(
String
msg
)
{
logger
.
error
(
addJobId
(
msg
));
}
@Override
public
void
error
(
String
format
,
Object
arg
)
{
logger
.
error
(
addJobId
(
format
),
arg
);
}
@Override
public
void
error
(
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
error
(
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
error
(
String
format
,
Object
...
arguments
)
{
logger
.
error
(
addJobId
(
format
),
arguments
);
}
@Override
public
void
error
(
String
msg
,
Throwable
t
)
{
logger
.
error
(
addJobId
(
msg
),
t
);
}
@Override
public
boolean
isErrorEnabled
(
Marker
marker
)
{
return
logger
.
isErrorEnabled
();
}
@Override
public
void
error
(
Marker
marker
,
String
msg
)
{
logger
.
error
(
marker
,
addJobId
(
msg
));
}
@Override
public
void
error
(
Marker
marker
,
String
format
,
Object
arg
)
{
logger
.
error
(
marker
,
addJobId
(
format
),
arg
);
}
@Override
public
void
error
(
Marker
marker
,
String
format
,
Object
arg1
,
Object
arg2
)
{
logger
.
error
(
marker
,
addJobId
(
format
),
arg1
,
arg2
);
}
@Override
public
void
error
(
Marker
marker
,
String
format
,
Object
...
arguments
)
{
logger
.
error
(
marker
,
addJobId
(
format
),
arguments
);
}
@Override
public
void
error
(
Marker
marker
,
String
msg
,
Throwable
t
)
{
logger
.
error
(
marker
,
addJobId
(
msg
),
t
);
}
}
escheduler-server/src/main/java/cn/escheduler/server/worker/runner/TaskScheduleThread.java
浏览文件 @
c4b53dfb
...
@@ -40,7 +40,6 @@ import cn.escheduler.dao.model.TaskInstance;
...
@@ -40,7 +40,6 @@ import cn.escheduler.dao.model.TaskInstance;
import
cn.escheduler.dao.model.Tenant
;
import
cn.escheduler.dao.model.Tenant
;
import
cn.escheduler.server.utils.LoggerUtils
;
import
cn.escheduler.server.utils.LoggerUtils
;
import
cn.escheduler.server.utils.ParamUtils
;
import
cn.escheduler.server.utils.ParamUtils
;
import
cn.escheduler.server.worker.log.TaskLogger
;
import
cn.escheduler.server.worker.task.AbstractTask
;
import
cn.escheduler.server.worker.task.AbstractTask
;
import
cn.escheduler.server.worker.task.TaskManager
;
import
cn.escheduler.server.worker.task.TaskManager
;
import
cn.escheduler.server.worker.task.TaskProps
;
import
cn.escheduler.server.worker.task.TaskProps
;
...
@@ -66,11 +65,6 @@ public class TaskScheduleThread implements Runnable {
...
@@ -66,11 +65,6 @@ public class TaskScheduleThread implements Runnable {
*/
*/
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
TaskScheduleThread
.
class
);
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
TaskScheduleThread
.
class
);
/**
* task prefix
*/
private
static
final
String
TASK_PREFIX
=
"TASK"
;
/**
/**
* task instance
* task instance
*/
*/
...
@@ -147,7 +141,7 @@ public class TaskScheduleThread implements Runnable {
...
@@ -147,7 +141,7 @@ public class TaskScheduleThread implements Runnable {
taskInstance
.
getId
()));
taskInstance
.
getId
()));
// custom logger
// custom logger
TaskLogger
taskLogger
=
new
TaskLogger
(
LoggerUtils
.
buildTaskId
(
TASK
_PREFIX
,
Logger
taskLogger
=
LoggerFactory
.
getLogger
(
LoggerUtils
.
buildTaskId
(
LoggerUtils
.
TASK_LOGGER_INFO
_PREFIX
,
taskInstance
.
getProcessDefine
().
getId
(),
taskInstance
.
getProcessDefine
().
getId
(),
taskInstance
.
getProcessInstance
().
getId
(),
taskInstance
.
getProcessInstance
().
getId
(),
taskInstance
.
getId
()));
taskInstance
.
getId
()));
...
...
escheduler-server/src/main/java/cn/escheduler/server/worker/task/AbstractCommandExecutor.java
浏览文件 @
c4b53dfb
...
@@ -33,6 +33,7 @@ import java.util.ArrayList;
...
@@ -33,6 +33,7 @@ import java.util.ArrayList;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Consumer
;
import
java.util.function.Consumer
;
import
java.util.regex.Matcher
;
import
java.util.regex.Matcher
;
...
@@ -347,7 +348,8 @@ public abstract class AbstractCommandExecutor {
...
@@ -347,7 +348,8 @@ public abstract class AbstractCommandExecutor {
*/
*/
private
void
parseProcessOutput
(
Process
process
)
{
private
void
parseProcessOutput
(
Process
process
)
{
String
threadLoggerInfoName
=
String
.
format
(
"TaskLogInfo-%s"
,
taskAppId
);
String
threadLoggerInfoName
=
String
.
format
(
"TaskLogInfo-%s"
,
taskAppId
);
ThreadUtils
.
newDaemonSingleThreadExecutor
(
threadLoggerInfoName
).
submit
(
new
Runnable
(){
ExecutorService
parseProcessOutputExecutorService
=
ThreadUtils
.
newDaemonSingleThreadExecutor
(
threadLoggerInfoName
);
parseProcessOutputExecutorService
.
submit
(
new
Runnable
(){
@Override
@Override
public
void
run
()
{
public
void
run
()
{
BufferedReader
inReader
=
null
;
BufferedReader
inReader
=
null
;
...
@@ -373,7 +375,7 @@ public abstract class AbstractCommandExecutor {
...
@@ -373,7 +375,7 @@ public abstract class AbstractCommandExecutor {
}
}
}
}
});
});
parseProcessOutputExecutorService
.
shutdown
();
}
}
public
int
getPid
()
{
public
int
getPid
()
{
...
...
escheduler-server/src/main/resources/worker_logback.xml
浏览文件 @
c4b53dfb
...
@@ -9,19 +9,26 @@
...
@@ -9,19 +9,26 @@
<charset>
UTF-8
</charset>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
</appender>
</appender>
<appender
name=
"TASKLOGFILE"
class=
"c
n.escheduler.server.worker.log.TaskLo
gAppender"
>
<appender
name=
"TASKLOGFILE"
class=
"c
h.qos.logback.classic.sift.Siftin
gAppender"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
INFO
</level>
<level>
INFO
</level>
</filter>
</filter>
<filter
class=
"cn.escheduler.server.worker.log.TaskLogFilter"
></filter>
<filter
class=
"cn.escheduler.server.worker.log.TaskLogFilter"
></filter>
<file>
${log.base}/{processDefinitionId}/{processInstanceId}/{taskInstanceId}.log
</file>
<Discriminator
class=
"cn.escheduler.server.worker.log.TaskLogDiscriminator"
>
<encoder>
<key>
taskAppId
</key>
<pattern>
</Discriminator>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
<sift>
</pattern>
<appender
name=
"FILE-${taskAppId}"
class=
"ch.qos.logback.core.FileAppender"
>
<charset>
UTF-8
</charset>
<file>
${log.base}/${taskAppId}.log
</file>
</encoder>
<encoder>
<append>
true
</append>
<pattern>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
</pattern>
<charset>
UTF-8
</charset>
</encoder>
<append>
true
</append>
</appender>
</sift>
</appender>
</appender>
<appender
name=
"WORKERLOGFILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"WORKERLOGFILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
...
...
escheduler-server/src/test/java/cn/escheduler/server/worker/shell/ShellCommandExecutorTest.java
浏览文件 @
c4b53dfb
...
@@ -23,7 +23,6 @@ import cn.escheduler.dao.DaoFactory;
...
@@ -23,7 +23,6 @@ import cn.escheduler.dao.DaoFactory;
import
cn.escheduler.dao.ProcessDao
;
import
cn.escheduler.dao.ProcessDao
;
import
cn.escheduler.dao.model.TaskInstance
;
import
cn.escheduler.dao.model.TaskInstance
;
import
cn.escheduler.server.utils.LoggerUtils
;
import
cn.escheduler.server.utils.LoggerUtils
;
import
cn.escheduler.server.worker.log.TaskLogger
;
import
cn.escheduler.server.worker.task.AbstractTask
;
import
cn.escheduler.server.worker.task.AbstractTask
;
import
cn.escheduler.server.worker.task.TaskManager
;
import
cn.escheduler.server.worker.task.TaskManager
;
import
cn.escheduler.server.worker.task.TaskProps
;
import
cn.escheduler.server.worker.task.TaskProps
;
...
@@ -43,7 +42,6 @@ import java.util.Date;
...
@@ -43,7 +42,6 @@ import java.util.Date;
public
class
ShellCommandExecutorTest
{
public
class
ShellCommandExecutorTest
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ShellCommandExecutorTest
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ShellCommandExecutorTest
.
class
);
private
static
final
String
TASK_PREFIX
=
"TASK"
;
private
ProcessDao
processDao
=
null
;
private
ProcessDao
processDao
=
null
;
...
@@ -75,7 +73,7 @@ public class ShellCommandExecutorTest {
...
@@ -75,7 +73,7 @@ public class ShellCommandExecutorTest {
// custom logger
// custom logger
TaskLogger
taskLogger
=
new
TaskLogger
(
LoggerUtils
.
buildTaskId
(
TASK
_PREFIX
,
Logger
taskLogger
=
LoggerFactory
.
getLogger
(
LoggerUtils
.
buildTaskId
(
LoggerUtils
.
TASK_LOGGER_INFO
_PREFIX
,
taskInstance
.
getProcessDefinitionId
(),
taskInstance
.
getProcessDefinitionId
(),
taskInstance
.
getProcessInstanceId
(),
taskInstance
.
getProcessInstanceId
(),
taskInstance
.
getId
()));
taskInstance
.
getId
()));
...
...
escheduler-server/src/test/java/cn/escheduler/server/worker/sql/SqlExecutorTest.java
浏览文件 @
c4b53dfb
...
@@ -23,7 +23,6 @@ import cn.escheduler.dao.DaoFactory;
...
@@ -23,7 +23,6 @@ import cn.escheduler.dao.DaoFactory;
import
cn.escheduler.dao.ProcessDao
;
import
cn.escheduler.dao.ProcessDao
;
import
cn.escheduler.dao.model.TaskInstance
;
import
cn.escheduler.dao.model.TaskInstance
;
import
cn.escheduler.server.utils.LoggerUtils
;
import
cn.escheduler.server.utils.LoggerUtils
;
import
cn.escheduler.server.worker.log.TaskLogger
;
import
cn.escheduler.server.worker.task.AbstractTask
;
import
cn.escheduler.server.worker.task.AbstractTask
;
import
cn.escheduler.server.worker.task.TaskManager
;
import
cn.escheduler.server.worker.task.TaskManager
;
import
cn.escheduler.server.worker.task.TaskProps
;
import
cn.escheduler.server.worker.task.TaskProps
;
...
@@ -43,7 +42,6 @@ import java.util.Date;
...
@@ -43,7 +42,6 @@ import java.util.Date;
public
class
SqlExecutorTest
{
public
class
SqlExecutorTest
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SqlExecutorTest
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SqlExecutorTest
.
class
);
private
static
final
String
TASK_PREFIX
=
"TASK"
;
private
ProcessDao
processDao
=
null
;
private
ProcessDao
processDao
=
null
;
...
@@ -118,7 +116,7 @@ public class SqlExecutorTest {
...
@@ -118,7 +116,7 @@ public class SqlExecutorTest {
// custom logger
// custom logger
TaskLogger
taskLogger
=
new
TaskLogger
(
LoggerUtils
.
buildTaskId
(
TASK
_PREFIX
,
Logger
taskLogger
=
LoggerFactory
.
getLogger
(
LoggerUtils
.
buildTaskId
(
LoggerUtils
.
TASK_LOGGER_INFO
_PREFIX
,
taskInstance
.
getProcessDefinitionId
(),
taskInstance
.
getProcessDefinitionId
(),
taskInstance
.
getProcessInstanceId
(),
taskInstance
.
getProcessInstanceId
(),
taskInstance
.
getId
()));
taskInstance
.
getId
()));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录