java kettle log_kettle使用log4j管理输出日志
在使用kettle進(jìn)行數(shù)據(jù)分析和清洗時(shí)日志非常多而且雜亂,使用原有的日志有時(shí)找不到異常的位置,有時(shí)日志不夠詳細(xì),說簡單一點(diǎn)就是日志不是我們想要的。因而對kettle日志進(jìn)行相應(yīng)的管理就想得尤為重要了。大家都知道java最常用的日志管理包log4j可以很好地實(shí)現(xiàn)java日志的管理,然而kettle是使用java開發(fā)的,因而log4j是個(gè)不二的選擇。好了說了這么多,下面看看kettle怎么使用log4j進(jìn)行日志的管理吧。
1、kettle加載和使用log4j
在轉(zhuǎn)換的JavaScript中添加log4j的支持
//Script here//updateOuputLog();//confFile 日志配置文件路徑//增加日志輸出文件//通過/../conf/log.xml文件配置日志輸出
functionupdateOutputLog(confFile){var first = getVariable("FIRST_TIME_UPDATE_LOG", "true");if(first == "true"){
logWriter=org.pentaho.di.core.logging.LogWriter.getInstance();var softPath =getThisSoftPath();
setVariable("WORKDIR", softPath, "s");//設(shè)置日志路徑變量
var logConf = softPath + "/../conf/log.xml";if(confFile != null && confFile != ""){
logConf= softPath + "/" +confFile;
}else{if(!fileExists(logConf)){
logConf= softPath + "/log.xml";
}if(!fileExists(logConf)){
logConf= softPath + "/conf/log.xml";
}
}
writeToLog("m", "======logConfPath====>"+logConf);
org.apache.log4j.xml.DOMConfigurator.configure(logConf);var logger = org.apache.log4j.Logger.getLogger("kettle_log");var appenders =logger.getAllAppenders();while(appenders.hasMoreElements()){var appender =appenders.nextElement();
writeToLog("m", "======add==log====>"+appender.getName());
logWriter.addAppender(appender);
}
setVariable("FIRST_TIME_UPDATE_LOG", "false", "r");
}
}//Alert(getThisSoftPath());//返回程序所在目錄 不帶前綴file:
functiongetThisSoftPath(){var osName = java.lang.System.getProperty("os.name").toLowerCase();var path = getVariable("Internal.Transformation.Filename.Directory", "");if(osName.indexOf("windows") >= 0){//WINDOWS系統(tǒng)
path = path.substring(8);
}else{
path= path.substring(7);
}returnpath;
}functiongetConfigPath(softDir,confPath,splitStr){var arr =confPath.split(splitStr);var str = softDir+arr[0];for(var i=1; i
str= str + splitStr + softDir+arr[i];
}
}//Alert(str);
returnstr;
}
2、準(zhǔn)備log4j配置文件log.xml
此處需要注意log4j日志的存放路徑,路徑由變量${WORKDIR}控制,存放路徑為項(xiàng)目根目錄下的log目錄。
3、測試
運(yùn)行結(jié)果:
2011-06-08 09:50:28,897 INFO (LogWriter.java:450) -> 設(shè)置默認(rèn)配置文件.0 - ======add==log====>kettle_error
2011-06-08 09:50:28,897 INFO (LogWriter.java:450) -> 設(shè)置默認(rèn)配置文件.0 - 增加配置日志成功
2011-06-08 09:50:28,912 INFO (LogWriter.java:450) -> 設(shè)置默認(rèn)配置文件.0 - E:/test/src/../conf/config_static.properties
2011-06-08 09:50:28,912 INFO (LogWriter.java:450) -> 設(shè)置默認(rèn)配置文件.0 - 完成處理 (I=0, O=0, R=1, W=1, U=1, E=0
2011-06-08 09:50:28,943 INFO (LogWriter.java:450) -> 拆分路徑 2.0 - 完成處理 (I=0, O=0, R=1, W=1, U=1, E=0
2011-06-08 09:50:28,943 INFO (LogWriter.java:450) -> 讀取配置文件.0 - 配置文件:TO_DB_PWD1=test
2011-06-08 09:50:28,943 INFO (LogWriter.java:450) -> 配置文件輸入.0 - 完成處理 (I=20, O=0, R=1, W=20, U=20, E=0
2011-06-08 09:50:28,943 INFO (LogWriter.java:450) -> 讀取配置文件.0 - 配置文件:DEST_DB_UNAME2=test
注:11年測試的日志文件
總結(jié)
以上是生活随笔為你收集整理的java kettle log_kettle使用log4j管理输出日志的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信公众平台 图片 java_Java微
- 下一篇: cydia是什么在哪找到(cydia是什