Skip to content

Support different logging levels in ROS 2 #104

@matthias-mayr

Description

@matthias-mayr

When using the logger with different logging levels it crashes. Line reference:
https://github.com/RVMI/skiros2/blob/ed5bc907f8509f8223bf5c75ff2b7bcf9ff056e7/skiros2_common/skiros2_common/tools/logger.py#L180-L181

Stack trace when crashing:

Fiile "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/impl/rcutils_logger.py", line 299, in log
    raise ValueError('Logger severity cannot be changed between calls.')
  File "/home/matthias/Workspaces/skiros2_ws/build/skiros2_common/skiros2_common/tools/logger.py", line 181, in log
    self.__log.log(self.msgToString(self.__LOG[-1]), logToLoggingMode[mode])
  File "/home/matthias/Workspaces/skiros2_ws/build/skiros2_common/skiros2_common/tools/logger.py", line 91, in logWarn
    def logWarn(self, msg, desc=None):     self.log(logMode.WARN, msg, desc)
  File "/home/matthias/Workspaces/skiros2_ws/build/skiros2_world_model/skiros2_world_model/ros/ontology_interface.py", line 32, in __init__
    log.warn("[{}]".format(self.__class__.__name__), "Service {} not available, waiting again ...".format(s.srv_name))
  File "/home/matthias/Workspaces/skiros2_ws/build/skiros2_world_model/skiros2_world_model/ros/world_model_interface.py", line 30, in __init__
    OntologyInterface.__init__(self, node, author_name, allow_spinning)
  File "/home/matthias/Workspaces/skiros2_ws/build/skiros2_skill/skiros2_skill/ros/skill_manager.py", line 188, in __init__
    self._wmi = wmi.WorldModelInterface(node, agent_name, make_cache=True, allow_spinning=True)
  File "/home/matthias/Workspaces/skiros2_ws/build/skiros2_skill/skiros2_skill/ros/skill_manager.py", line 385, in __init__
    self.sm = SkillManager(self, self.get_parameter('prefix').value, full_name, verbose=self.get_parameter('verbose').value)
  File "/home/matthias/Workspaces/skiros2_ws/build/skiros2_skill/skiros2_skill/nodes/skill_manager_node.py", line 7, in main
    node = SkillManagerNode()
  File "/home/matthias/Workspaces/skiros2_ws/install/skiros2_skill/lib/skiros2_skill/skill_manager_node", line 33, in <module>
    sys.exit(load_entry_point('skiros2-skill', 'console_scripts', 'skill_manager_node')())
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main (Current frame)
    return _run_code(code, main_globals, None,
ValueError: Logger severity cannot be changed between calls

Metadata

Metadata

Assignees

Labels

ROS 2Issue affects ROS 2bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions