【发布时间】:2020-12-04 20:00:47
【问题描述】:
我正在使用 Maximo 中的 Jython 自动化脚本。当脚本正确退出时,我在 MXServer 日志中看到了我的 print 语句的输出,但是如果脚本崩溃,我的任何打印语句都不会进入日志 - 即使是在脚本崩溃之前执行的打印语句。这就是 Maximo 的工作方式,还是在脚本崩溃时可以通过某种方式查看这些打印语句?如果我看不到我的打印语句,那么很难调试为什么脚本会崩溃。
【问题讨论】:
我正在使用 Maximo 中的 Jython 自动化脚本。当脚本正确退出时,我在 MXServer 日志中看到了我的 print 语句的输出,但是如果脚本崩溃,我的任何打印语句都不会进入日志 - 即使是在脚本崩溃之前执行的打印语句。这就是 Maximo 的工作方式,还是在脚本崩溃时可以通过某种方式查看这些打印语句?如果我看不到我的打印语句,那么很难调试为什么脚本会崩溃。
【问题讨论】:
这就是脚本引擎在 Maximo 中的工作方式。如果它不能干净地退出,它就不会转储它到目前为止收到的输出(或者能够获取存储在执行脚本中的输出)。这是您应该使用日志记录语句而不是打印语句的主要原因(还有其他一些,例如能够更改日志记录输出级别;这与您不应该使用 System.out.println 并且应该使用的建议相似一个记录器代替)。即使脚本没有完全退出(或根本没有退出),脚本中的日志语句仍会在脚本运行时打印出来。
从 Maximo 7.6.0.something 开始,他们甚至向脚本获取的特殊 service 对象添加了一些日志记录辅助函数。您可以致电service.log_debug、service.log_info 等在相应级别注销到预制记录器。
【讨论】: