kettle日志默认打印到控制台,无法在XXL JOB 框架查看kettle 日志
1、自定义kettle日志监听
package com.xxl.job.executor.service;
import com.xxl.job.core.log.XxlJobLogger;
import org.pentaho.di.core.logging.KettleLogStore;
import org.pentaho.di.core.logging.KettleLoggingEvent;
import org.pentaho.di.core.logging.LoggingPlugin;
import org.pentaho.di.core.logging.LoggingPluginInterface;
/**
* kettle 日志和XXL JOB 集成
* @author 王长金
*/
@LoggingPlugin(id="KettleLogListener", isSeparateClassLoaderNeeded=true)
public class KettleLogListener implements LoggingPluginInterface {
@Override
public void init() {
KettleLogStore.getAppender().addLoggingEventListener(this);
}
@Override
public void dispose() {
KettleLogStore.getAppender().removeLoggingEventListener(this);
}
@Override
public void eventAdded(KettleLoggingEvent kettleLoggingEvent) {
XxlJobLogger.log(kettleLoggingEvent.getMessage().toString());
}
}
2、集成
/**
* kettle 日志和XXL JOB集成
* @return
*/
@Bean(initMethod = "init", destroyMethod = "dispose")
public KettleLogListener kettleLogListener() {
try {
KettleEnvironment.init();
} catch (KettleException e) {
e.printStackTrace();
}
return new KettleLogListener();
}
3、测试查看效果
可以看到KETTLE 执行 日志成功输出到了 XXL JOB 框架
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!