页面树结构
转至元数据结尾
转至元数据起始

问题说明

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

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

参考解决办法

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

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

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

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


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

importPackage(Packages.java.lang);

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

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


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

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

importPackage(Packages.java.lang);
 
var tempVar = "abc";
System.out.println("tempVar = " + tempVar);

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