Сценарий автоматизации Maximo регистрирует сбой сценария

#jython #maximo

#jython #maximo

Вопрос:

Я работаю со сценарием автоматизации Jython в Maximo. Я вижу вывод своих print операторов в журналах MXServer при корректном завершении работы скрипта, но ни один из моих операторов print не попадает в журналы, если сценарий выходит из строя — даже операторы print, которые выполняются до сбоя скрипта. Это именно то, как работает Maximo, или есть какой-то способ увидеть эти операторы печати при сбое скрипта? Очень сложно отладить причину сбоя скрипта, если я не вижу свои операторы печати.

Ответ №1:

Именно так работает механизм сценариев в Maximo. Если он не может завершить работу чисто, он не будет сбрасывать выходные данные, которые он получил до сих пор (или сможет захватить выходные данные, сохраненные в исполняемом скрипте). Это основная причина, по которой вы должны использовать операторы ведения журнала вместо операторов печати (есть и другие, например, возможность изменять уровень вывода журнала; это соответствует совету о том, что вам никогда не следует использовать System.out.println и вместо этого следует использовать регистратор). Операторы протоколирования из скрипта все равно будут распечатываться по мере выполнения скрипта, даже если скрипт не завершается чисто (или вообще не завершался).

Начиная с версии Maximo 7.6.0.something, они даже добавили некоторые вспомогательные функции ведения журнала в специальный service объект, который получают скрипты. Вы можете вызвать service.log_debug , service.log_info , и т.д. для выхода из системы на соответствующем уровне с помощью предварительно созданного регистратора.