kettle作业中的js如何写日志文件

在kettle作业中JavaScript脚本有时候也扮演非常重要的角色,此时我们希望有一些日志记录。下面是job中JavaScript记录日志的方式。

job的js写日志的方法。

得到日志输出实例

org.pentaho.di.core.logging.LogWriter.getInstance();

按照日志的级别输出:

public void logMinimal(String subject, String message, Object... args)
{ println(LOG_LEVEL_MINIMAL, subject, message, args) ; }
public void logBasic(String subject, String message, Object... args)
{ println(LOG_LEVEL_BASIC, subject, message, args) ; }
public void logDetailed(String subject, String message, Object... args)
{ println(LOG_LEVEL_DETAILED, subject, message, args); }
public void logDebug(String subject, String message, Object... args)
{ println(LOG_LEVEL_DEBUG, subject, message, args); }
public void logRowlevel(String subject, String message, Object... args)
{ println(LOG_LEVEL_ROWLEVEL, subject, message, args); }
public void logError(String subject, String message, Object... args)
{ println(LOG_LEVEL_ERROR, subject, message, args); }

例子:

var mpType = parent_job.getVariable("IMPTYPE");
var sStart = parent_job.getVariable("STARTTIME");
var sEnd = parent_job.getVariable("ENDTIME");

var sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
var cal = new java.util.Calendar();

var start = sdf.parse(sStart);
cal.setTime(start);
var month1 = cal.get(cal.MONTH);

var end = sdf.parse(sEnd);
cal.setTime(end);
cal.add(Calendar.DATE, -1);
var month2 = cal.get(cal.MONTH);

var log = org.pentaho.di.core.logging.LogWriter.getInstance();

log.logMinimal("<周统计做特殊处理>", "是否跨月:startTime-->" + sStart+ "; endTime-->" + sEnd + "; startMonth-->" + month1 + ";endMonth-->" + month2, "");
if((10080 == mpType) && (month1 != month2)){
  var nextMonthPrefix = parent_job.getVariable("NEXTMONTABPRE");
  parent_job.setVariable("MONTHTABPRE", nextMonthPrefix);
  log.logMinimal("<周统计做特殊处理>", "!!!该周跨月!!!MONTHTABPRE-->" + nextMonthPrefix + "; startMonth-->" + month1 + ";endMonth-->" + month2, "");
}

true;

 

 

时间: 2024-09-20 06:34:28

kettle作业中的js如何写日志文件的相关文章

linux系统中c++写日志文件功能分享_C 语言

简化了glog,只保留了写日志文件的功能,只是改写了linux版本,win版本未改写,可以用LOG(INFO)<< 输出日志也可用LOG_IF(INFO,condition)<<输出日志也可直接调用日志类Logger::GetInstance().Error 等方式写日志初始化时调用 InitLogging(argv[0],INFO,"./log/test");第一个参数是路径,第二个参数是最低日志级别,第三个参数表示日志文件的前缀和文件夹 FileHelper

二维数组-C#中如何大幅提高写excel文件的速度?

问题描述 C#中如何大幅提高写excel文件的速度? 输入文件:input.txt包含以[:]号或者[t]制表符分隔的多行(实际在100万行以上)数据,每行数据个数不定. a;b;c 1;2; 1;2;3;4;5 输出文件;output.xlsx a b c 1 2 1 2 3 4 5 问题:写了个小程序处理2000行在10s以内,百万行速度就太慢,无法忍受了.求教一些能显著提高写Excel速度的方法.网上查的先变成二维数组之类的方法,效果不大.百万行在20min以内就好. 解决方案 你完全没有

eclipse中启动tomcat不产生日志文件

问题描述 eclipse中启动tomcat不产生日志文件 eclipse中启动tomcat不产生日志文件,但是在tomcat文件夹中启动startup.bat就会有,是什么问题 解决方案 Console打开了没?

Oracle日常维护中管理用户以及重做日志文件的方法_oracle

一.管理用户和安全性在db中各种对象以 用户(方案) 的方式组织管理 select distinct object_type from dba_objects;         模式对象,schema ----> user.objects(某个用户下的某个对象) 在创建对象和访问对象前,首先创建对象的拥有者--用户         所有的对象在用户下 用户有相关的属性,有些必须明确设置,有些可以使用默认值         常见属性:用户名.口令.默认表空间(可默认).临时表空间(可默认).账户状

在ASP.NET中使用EXCEL之三 写Excel文件

asp.net|excel   在按钮的click事件中输入如下代码,即可以实现写入Excel文件. 写Excel文件时,还要把项目文件夹的权限进行设置,对iuser_machine用户有可写的权限. private void Button1_Click(object sender, System.EventArgs e)  {string filename="";   Excel.ApplicationClass oExcel;   oExcel = new Excel.Applic

Oracle中Active或Current联机日志文件丢失后的恢复方法

联机日志文件状态为active或current表示该日志包含的数据修改还未完全同步到数据文 件中,在实例恢复时,还需要读取其中的redo记录重演,因此如果损坏,数据丢失在所难免 . 1)模拟灾难 首先查看log的状态: SQL> select group#,sequence#,status from v$log; GROUP#  SEQUENCE# STATUS ------ ---- ---------- ----------------     2          5 CURRENT  

在Linux系统中使用logrotate来管理日志文件的方法

  日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事. logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循).压缩以及删除旧的日志文件.例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志.配置完后,logrotate的运作完全自动化,不必进行任

!!!!!!Spring中Log4j保存不了日志文件,为什么呢?

问题描述 HI,大家好,我有个问题请教下各位.Spring中用Log4j处理日志,但是控制台能显示,却保存不了在日志文件里,写了个测试类,在MAIN方法里运行就可以连显示带保存,感觉很奇怪,大家帮忙看看阿Log4j.properties:log4j.rootLogger=info,stdout,logfile#--------------------stdout--------------------------------log4j.appender.stdout=org.apache.log

Win2008中SqlServer2008 无法打开错误日志文件导致无法启动的解决方法_mssql2005

今天早上一个客户的SqlServer 2008的服务器应为重新修改配置导致网站打不开,链接到远程服务器之后,在服务器的事件查看器,发现如下错误, 错误描述: 日志名称: Application 来源: MSSQLSERVER 日期: 2011/10/25 11:30:49 事件 ID: 17058 任务类别: 服务器 级别: 错误 关键字: 经典 用户: 暂缺 计算机: WIN-VPS-SERVER 描述: initerrlog: 无法打开错误日志文件 'D:\WWW\Services\SQLD