博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kettle使用log4j管理输出日志
阅读量:7247 次
发布时间:2019-06-29

本文共 3192 字,大约阅读时间需要 10 分钟。

  在使用kettle进行数据分析和清洗时日志非常多而且杂乱,使用原有的日志有时找不到异常的位置,有时日志不够详细,说简单一点就是日志不是我们想要的。因而对kettle日志进行相应的管理就想得尤为重要了。大家都知道java最常用的日志管理包log4j可以很好地实现java日志的管理,然而kettle是使用java开发的,因而log4j是个不二的选择。好了说了这么多,下面看看kettle怎么使用log4j进行日志的管理吧。

1、kettle加载和使用log4j

在转换的JavaScript中添加log4j的支持

//Script here//updateOuputLog();//confFile  日志配置文件路径//增加日志输出文件//通过/../conf/log.xml文件配置日志输出function updateOutputLog(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:function getThisSoftPath(){    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); } return path;}function getConfigPath(softDir,confPath,splitStr){ var arr = confPath.split(splitStr); var str = softDir+arr[0]; for(var i=1; i

2、准备log4j配置文件log.xml

此处需要注意log4j日志的存放路径,路径由变量${WORKDIR}控制,存放路径为项目根目录下的log目录。

3、测试

  运行结果:

2011-06-08 09:50:28,897 INFO  (LogWriter.java:450) -> 设置默认配置文件.0 - ======add==log====>kettle_error2011-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.properties2011-06-08 09:50:28,912 INFO  (LogWriter.java:450) -> 设置默认配置文件.0 - 完成处理 (I=0, O=0, R=1, W=1, U=1, E=02011-06-08 09:50:28,943 INFO  (LogWriter.java:450) -> 拆分路径 2.0 - 完成处理 (I=0, O=0, R=1, W=1, U=1, E=02011-06-08 09:50:28,943 INFO  (LogWriter.java:450) -> 读取配置文件.0 - 配置文件:TO_DB_PWD1=test2011-06-08 09:50:28,943 INFO  (LogWriter.java:450) -> 配置文件输入.0 - 完成处理 (I=20, O=0, R=1, W=20, U=20, E=02011-06-08 09:50:28,943 INFO  (LogWriter.java:450) -> 读取配置文件.0 - 配置文件:DEST_DB_UNAME2=test

 注:11年测试的日志文件

转载地址:http://ofnbm.baihongyu.com/

你可能感兴趣的文章
PAT (Advanced Level) 1109. Group Photo (25)
查看>>
Dubbo+Zookeeper平台的搭建
查看>>
diff 比较两个文件的差异
查看>>
将 纯真ip数据库|QQ IP数据库 转为SQL,ACCESS
查看>>
JavaScript的错误处理
查看>>
iframe 从父像子穿参数(前端网备份)
查看>>
工厂方法模式 创建型 设计模式(三)
查看>>
有梦想就有未来!
查看>>
SpringMVC自定义视图
查看>>
linux创建日期文件名
查看>>
常用查找和排序
查看>>
BZOJ 1296 DP
查看>>
js高级程序设计(三)基本概念
查看>>
[转]使用storyboard实现页面跳转,简单的数据传递
查看>>
数据分析核心包pandas
查看>>
android NDK 学习笔记(3)---eclipse 环境自动创建头文件.h ---javah
查看>>
时间模块
查看>>
Docker Mysql部署
查看>>
Ubuntu安装sublime
查看>>
React.js实现原生js拖拽效果及思考
查看>>