#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
, и т.д. для выхода из системы на соответствующем уровне с помощью предварительно созданного регистратора.