kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制获取执行的sql。
如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var
sqlObj = getJobStep(
"SQL"
);
var
sql = sqlObj.environmentSubstitute(sqlObj.getSQL());
var
logWriter = org.pentaho.di.core.logging.LogWriter.getInstance();
logWriter.logBasic(parent_job.getJobname(),
"作业SQL语句打印===================>"
+sql);
true
;
function
getJobStep(stepName){
var
jobMeta = parent_job.getJobMeta();
var
jobStep = jobMeta.findJobEntry(stepName, 0,
false
);
var
stepObj = jobStep.getEntry();
return
stepObj;
}
|
这样就可以将日志优雅地记录在日志文件中了。
本文转自秋楓博客园博客,原文链接:http://www.cnblogs.com/rwxwsblog/p/4530497.html,如需转载请自行联系原作者