17 #include "rcl_logging_interface/rcl_logging_interface.h"
19 #include "rclcpp/exceptions.hpp"
20 #include "rclcpp/logger.hpp"
21 #include "rclcpp/logging.hpp"
29 #if RCLCPP_LOGGING_ENABLED
41 if (
nullptr == logger_name) {
44 logger,
"failed to get logger name from node at address %p",
45 static_cast<void *
>(
const_cast<rcl_node_t *
>(node)));
54 char * log_dir = NULL;
55 auto allocator = rcutils_get_default_allocator();
56 rcl_logging_ret_t ret = rcl_logging_get_logging_directory(allocator, &log_dir);
57 if (RCL_LOGGING_RET_OK != ret) {
58 rclcpp::exceptions::throw_from_rcl_error(ret);
60 std::string path{log_dir};
61 allocator.deallocate(log_dir, allocator.state);
68 rcutils_ret_t rcutils_ret = rcutils_logging_set_logger_level(
70 static_cast<RCUTILS_LOG_SEVERITY
>(level));
71 if (rcutils_ret != RCUTILS_RET_OK) {
72 if (rcutils_ret == RCUTILS_RET_INVALID_ARGUMENT) {
73 exceptions::throw_from_rcl_error(
75 rcutils_get_error_state(), rcutils_reset_error);
77 exceptions::throw_from_rcl_error(
79 rcutils_get_error_state(), rcutils_reset_error);
RCLCPP_PUBLIC void set_level(Level level)
Set level for current logger.
RCLCPP_PUBLIC const char * get_name() const
Get the name of this logger.
Level
An enum for the type of logger level.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.
RCLCPP_PUBLIC Logger get_node_logger(const rcl_node_t *node)
Return a named logger using an rcl_node_t.
RCLCPP_PUBLIC rcpputils::fs::path get_logging_directory()
Get the current logging directory.
RCLCPP_PUBLIC Logger get_logger(const std::string &name)
Return a named logger.
RCL_PUBLIC RCL_WARN_UNUSED const char * rcl_node_get_logger_name(const rcl_node_t *node)
Return the logger name of the node.
Structure which encapsulates a ROS Node.
#define RCL_RET_INVALID_ARGUMENT
Invalid argument return code.
#define RCL_RET_ERROR
Unspecified error return code.