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,如需转载请自行联系原作者
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
2月前
|
编解码 JavaScript 前端开发
如何在网页播放英文的m3u8文件(基于Javascript搭建的在线网页工具)
什么是m3u8?又该如何在网页中高效、便捷地播放英文的m3u8文件呢?今天这篇文章就带你一起了解,并推荐一种基于Javascript搭建的在线网页工具,让你轻松解决播放问题。
661 0
|
12月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
137 0
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
223 0
Next.js 实战 (六):如何实现文件本地上传
|
11月前
|
JSON 监控 JavaScript
Node.js-API 限流与日志优化
Node.js-API 限流与日志优化
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
387 2
前端JS读取文件内容并展示到页面上
|
JavaScript 前端开发 数据安全/隐私保护
混淆指定js文件
【9月更文挑战第26天】JavaScript 混淆旨在保护代码知识产权、减小文件体积和提高安全性。方法包括变量名和函数名混淆、代码压缩、控制流平坦化及字符串加密。常用工具如 UglifyJS 和 JScrambler 可实现这些功能。然而,混淆可能带来兼容性和调试困难等问题,需谨慎使用并确保法律合规。
199 5
|
移动开发 JavaScript 前端开发
js之操作文件| 12-5
js之操作文件| 12-5
|
12月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
621 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
245 2
|
11月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
164 1
JavaScript中的原型 保姆级文章一文搞懂