ROS logger отключает Python logger - PullRequest
1 голос
/ 19 июня 2019

У меня проблемы с регистратором Python и регистратором rospy. В начале регистратор Python прекратил регистрацию, как только узел ROS был инициализирован. Я попытался решить проблему, добавив обработчик потока в логгер. Теперь он только регистрирует, если узел ROS инициализирован.

Я читал о конфликтах журналирования rospy и python в ROS git , но, похоже, нет хорошего решения использовать исключительно Python logger и независимо от ROS logger для моего кода.

какой-то модуль, инициализирующий регистратор:

    path = "/some_directory/"
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    logger = logging.getLogger('logger_name')

    # logging file handler for basic log infos
    file_handler_info = logging.FileHandler('{}log.log'.format(path))
    file_handler_info.setFormatter(formatter)
    file_handler_info.setLevel(logging.INFO)
    logger.addHandler(file_handler_info)

    # logging file handler for critical warnings
    file_handler_critical = logging.FileHandler('{}critical.log'.format(path))
    file_handler_critical.setFormatter(formatter)
    file_handler_critical.setLevel(logging.WARNING)
    logger.addHandler(file_handler_critical)

    # logging stream handler for console output
    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(formatter)
    stream_handler.setLevel(logging.DEBUG)
    logger.addHandler(stream_handler)

какой-то другой модуль, запускающий узел ROS

logger.info("This message will not be displayed")
rospy.init_node('node_name', anonymous=True)
logger.info("This message will be displayed")
...