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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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

job的js写日志的方法。

得到日志输出实例

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

按照日志的级别输出:

1
2
3
4
5
6
7
8
9
10
11
12
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); }

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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 ;





本文转自秋楓博客园博客,原文链接:http://www.cnblogs.com/rwxwsblog/p/4529957.html,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
42 0
|
29天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
132 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
29天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
22天前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
|
29天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
1月前
|
JSON 监控 JavaScript
Node.js-API 限流与日志优化
Node.js-API 限流与日志优化
|
2月前
|
监控 Linux 应用服务中间件
系统监控:使用日志文件 journalctl的使用
本文介绍了如何使用`journalctl`命令来监控和查看Linux系统的日志文件,包括查看特定行数、过滤日志级别、实时跟踪日志、按时间段查询日志以及日志轮换和压缩的配置。
79 2
系统监控:使用日志文件 journalctl的使用
|
2月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
2月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
174 0
|
2月前
|
SQL 数据库
为什么SQL日志文件很大,该如何处理?
为什么SQL日志文件很大,该如何处理?