日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java kettle log_kettle使用log4j管理输出日志

發布時間:2024/9/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java kettle log_kettle使用log4j管理输出日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在使用kettle進行數據分析和清洗時日志非常多而且雜亂,使用原有的日志有時找不到異常的位置,有時日志不夠詳細,說簡單一點就是日志不是我們想要的。因而對kettle日志進行相應的管理就想得尤為重要了。大家都知道java最常用的日志管理包log4j可以很好地實現java日志的管理,然而kettle是使用java開發的,因而log4j是個不二的選擇。好了說了這么多,下面看看kettle怎么使用log4j進行日志的管理吧。

1、kettle加載和使用log4j

在轉換的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");//設置日志路徑變量

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系統

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、準備log4j配置文件log.xml

此處需要注意log4j日志的存放路徑,路徑由變量${WORKDIR}控制,存放路徑為項目根目錄下的log目錄。

3、測試

運行結果:

2011-06-08 09:50:28,897 INFO (LogWriter.java:450) -> 設置默認配置文件.0 - ======add==log====>kettle_error

2011-06-08 09:50:28,897 INFO (LogWriter.java:450) -> 設置默認配置文件.0 - 增加配置日志成功

2011-06-08 09:50:28,912 INFO (LogWriter.java:450) -> 設置默認配置文件.0 - E:/test/src/../conf/config_static.properties

2011-06-08 09:50:28,912 INFO (LogWriter.java:450) -> 設置默認配置文件.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年測試的日志文件

總結

以上是生活随笔為你收集整理的java kettle log_kettle使用log4j管理输出日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。