我在使用Python logger和rospy logger时遇到了问题。一开始,当ROS节点被初始化后,Python logger就停止记录日志了。我尝试通过将一个流处理器(handler)添加到logger中来解决这个问题。现在只有在ROS节点被初始化后它才会记录日志。
我在ROS git中读到了关于rospy和python logging冲突的问题,但似乎没有一个好的解决方案可以让我的代码仅使用Python logger,独立于ROS logger。
某些模块初始化了logger:
我在ROS git中读到了关于rospy和python logging冲突的问题,但似乎没有一个好的解决方案可以让我的代码仅使用Python logger,独立于ROS logger。
某些模块初始化了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")