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 框架

upload successful



中间件      kettle xxljob 日志

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!