页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

问题说明

...

1、在自定义任务中,想查看一个变量的值,应该怎么做?

2、想要将任务执行过程中的一些信息存储到日志文件,以便于出现问题时候跟踪原因,有什么办法?

参考解决办法

由于任务代码是js语法的java代码,实际上代码是在服务器端执行,正常方式部署的环境都无法进行断点调试,因此需要通过java方法打印变量值实现间接调试。

有三种办法查看变量值:
1、办法一:在自定义任务中添加如下脚本,引入log4j包,将结果打印到日志中查看。

代码块
languagejs
linenumberstrue
importPackage(Packages.java.lang);
importPackage(Packages.org.apache.log4j);
 
var logger = Logger.getLogger("smartbi.oltp.FreeQueryConfiguration");
var tempVar = "1234567890";
logger.debug("tempVar = " + tempVar);

上述代码在日志文件中打印结果如下:

Image Modified

 

...


2、办法二:在自定义任务中添加如下脚本,利用任务上下文中系统内置的写日志对象logger,将结果打印到日志中查看。

代码块
languagejs
linenumberstrue
importPackage(Packages.java.lang);

var tempVar = "1234567890";
logger.debug("tempVar = " + tempVar);

上述代码在日志文件中打印结果如下:

Image Modified

...


3、办法三:在自定义任务中添加如下脚本,将结果打印到服务器控制台。

...

注:smartbi.log中不打印此结果

代码块
languagejs
linenumberstrue
importPackage(Packages.java.lang);
 
var tempVar = "abc";
System.out.println("tempVar = " + tempVar);

上述代码在服务器控制台中打印结果如下:

Image Modified

...