1. 程式人生 > 其它 >kettle日誌LogWriter已過時,LogChannelFileWriter當立

kettle日誌LogWriter已過時,LogChannelFileWriter當立

技術標籤:etljava

kettle版本8.2
使用方式
    1.spoon    手動執行
    2.kitchen 執行kjb  或者pan執行ktr
    3.java程式碼巢狀
日誌 
    1.在kjb或ktr中配置資料庫
     2.自己手動抓取
日誌檔案       
     1.指令碼執行話加引數 -level:Basic -logfile:$logFile
     2.!!本篇文中重點!!

在舊的版本中使用LogWriterlog=LogWriter.getInstance(logfilename,true,3);
但是在新的版本中已過時無法使用,(百度沒有找到解決方案,博主解決問題了寫此記錄下),此時

String logFile="路徑/檔名";
FileObject sharedObjectsFile = KettleVFS.getFileObject(logFile);
TransMeta transMeta = new TransMeta(ktrFilePath);
Trans trans = new Trans(transMeta);
//kettle後臺日誌入檔案
LogChannelFileWriter writer = new LogChannelFileWriter( trans.getLogChannelId(), sharedObjectsFile, false );
//在該日誌檔案中寫入別的日誌
LoggingRegistry.getInstance().getLogChannelFileWriterBuffer( trans.getLogChannelId() ).addEvent(new KettleLoggingEvent( "Log message", System.currentTimeMillis(), LogLevel.BASIC ) );
writer.startLogging();//必須有
trans.execute(null);
trans.waitUntilFinished();
writer.stopLogging();//必須有

程式碼依賴:
標紅的是資料庫驅動,請忽略在這裡插入圖片描述