diff --git a/ros2cli/ros2cli/daemon/__init__.py b/ros2cli/ros2cli/daemon/__init__.py index 80b63d048..3329dff6f 100644 --- a/ros2cli/ros2cli/daemon/__init__.py +++ b/ros2cli/ros2cli/daemon/__init__.py @@ -21,7 +21,6 @@ from ros2cli.helpers import before_invocation from ros2cli.helpers import get_ros_domain_id -from ros2cli.helpers import pretty_print_call from ros2cli.node.network_aware import NetworkAwareNode @@ -76,6 +75,7 @@ def serve(server: LocalXMLRPCServer, *, timeout: int = 2 * 60 * 60): start_parameter_services=False, start_type_description_service=False) with NetworkAwareNode(node_args) as node: + daemon_logger = node.get_logger() functions = [ node.get_name, node.get_namespace, @@ -117,7 +117,8 @@ def serve(server: LocalXMLRPCServer, *, timeout: int = 2 * 60 * 60): def reset_timer_and_pretty_print(func, *args, **kwargs): nonlocal last_function_call_time last_function_call_time = time.time() - pretty_print_call(func, args, kwargs) + arguments = ', '.join([f'{v!r}' for v in (args, kwargs)]) + daemon_logger.info(f'{func.__name__}({arguments})') server.register_introspection_functions() for func in functions: @@ -131,7 +132,7 @@ def timeout_handler(): nonlocal shutdown if time.time() - last_function_call_time > timeout: - print('Shutdown due to timeout') + daemon_logger.info('Shutdown due to timeout') shutdown = True server.handle_timeout = timeout_handler server.timeout = 0.2 @@ -139,11 +140,12 @@ def timeout_handler(): # function to shutdown daemon remotely def shutdown_handler(): nonlocal shutdown - print('Remote shutdown requested') + daemon_logger.info('Remote shutdown requested') shutdown = True server.register_function(shutdown_handler, 'system.shutdown') - print('Serving XML-RPC on ' + get_xmlrpc_server_url(server.server_address)) + daemon_logger.info( + f'Serving XML-RPC on {get_xmlrpc_server_url(server.server_address)}') try: while rclpy.ok() and not shutdown: server.handle_request() diff --git a/ros2cli/ros2cli/node/network_aware.py b/ros2cli/ros2cli/node/network_aware.py index e04e406a7..8733180f9 100644 --- a/ros2cli/ros2cli/node/network_aware.py +++ b/ros2cli/ros2cli/node/network_aware.py @@ -21,9 +21,10 @@ from ros2cli.node.direct import DirectNode -def get_interfaces_ip_addresses(): +def get_interfaces_ip_addresses(logger=None): addresses_by_interfaces = psutil.net_if_addrs() - print(f'Addresses by interfaces: {addresses_by_interfaces}') + if logger is not None: + logger.info(f'Addresses by interfaces: {addresses_by_interfaces}') return addresses_by_interfaces @@ -35,7 +36,7 @@ def __init__(self, args): # TODO(ivanpauno): A race condition is possible here, since it isn't possible to know # exactly which interfaces were available at node creation. self.node = DirectNode(args) - self.addresses_at_start = get_interfaces_ip_addresses() + self.addresses_at_start = get_interfaces_ip_addresses(self.node.get_logger()) def __enter__(self): self.node.__enter__() @@ -59,11 +60,11 @@ def __exit__(self, exc_type, exc_value, traceback): self.node.__exit__(exc_type, exc_value, traceback) def reset_if_addresses_changed(self): - new_addresses = get_interfaces_ip_addresses() + new_addresses = get_interfaces_ip_addresses(self.node.get_logger()) if new_addresses != self.addresses_at_start: self.addresses_at_start = new_addresses self.node.destroy_node() rclpy.shutdown() self.node = DirectNode(self.args) self.node.__enter__() - print('Network interfaces changed, daemon node was reset!') + self.node.get_logger().info('Network interfaces changed, daemon node was reset!')