问题说明
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);
上述代码在服务器控制台中打印结果如下: