17 #include "rcl/error_handling.h"
18 #include "rcutils/allocator.h"
19 #include "rcutils/logging_macros.h"
20 #include "rcutils/strdup.h"
27 .logger_settings = NULL,
28 .num_logger_settings = 0,
29 .capacity_logger_settings = 0,
30 .allocator = {NULL, NULL, NULL, NULL, NULL},
42 RCL_SET_ERROR_MSG(
"invalid logger settings");
52 if (logger_count > 0) {
56 RCL_SET_ERROR_MSG(
"Error allocating memory");
71 RCL_SET_ERROR_MSG(
"invalid logger settings");
78 RCL_SET_ERROR_MSG(
"Error allocating memory");
91 RCL_SET_ERROR_MSG(
"Error while finalizing log levels due to another error");
135 if (NULL == new_logger_settings) {
159 if (logger_setting->
level != log_level) {
160 RCUTILS_LOG_DEBUG_NAMED(
161 ROS_PACKAGE_NAME,
"Minimum log level of logger [%s] will be replaced from %d to %d",
162 logger_name, logger_setting->
level, log_level);
163 logger_setting->
level = log_level;
170 RCL_SET_ERROR_MSG(
"No capacity to store a logger setting");
174 char * name = rcutils_strdup(logger_name, *allocator);
176 RCL_SET_ERROR_MSG(
"failed to copy logger name");
181 logger_setting->
name = name;
182 logger_setting->
level = log_level;
#define RCL_CHECK_ALLOCATOR_WITH_MSG(allocator, msg, fail_statement)
Check that the given allocator is initialized, or fail with a message.
rcutils_allocator_t rcl_allocator_t
Encapsulation of an allocator.
RCL_PUBLIC rcl_ret_t rcl_log_levels_fini(rcl_log_levels_t *log_levels)
Reclaim resources held inside rcl_log_levels_t structure.
enum RCUTILS_LOG_SEVERITY rcl_log_severity_t
typedef for RCUTILS_LOG_SEVERITY;
RCL_PUBLIC RCL_WARN_UNUSED rcl_log_levels_t rcl_get_zero_initialized_log_levels()
Return a rcl_log_levels_t struct with members initialized to zero value.
RCL_PUBLIC rcl_ret_t rcl_log_levels_add_logger_setting(rcl_log_levels_t *log_levels, const char *logger_name, rcl_log_severity_t log_level)
Add logger setting with a name and a level.
RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_log_levels_init(rcl_log_levels_t *log_levels, const rcl_allocator_t *allocator, size_t logger_count)
Initialize a log levels structure.
RCL_PUBLIC rcl_ret_t rcl_log_levels_shrink_to_size(rcl_log_levels_t *log_levels)
Shrink log levels structure.
RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_log_levels_copy(const rcl_log_levels_t *src, rcl_log_levels_t *dst)
Copy one log levels structure into another.
Hold default logger level and other logger setting.
rcl_allocator_t allocator
Allocator used to allocate objects in this struct.
size_t capacity_logger_settings
Capacity of logger settings.
rcl_logger_setting_t * logger_settings
Array of logger setting.
rcl_log_severity_t default_logger_level
Minimum default logger level severity.
size_t num_logger_settings
Number of logger settings.
A logger item to specify a name and a log level.
rcl_log_severity_t level
Minimum log level severity of the logger.
const char * name
Name for the logger.
#define RCL_RET_OK
Success return code.
#define RCL_RET_BAD_ALLOC
Failed to allocate memory return code.
#define RCL_RET_INVALID_ARGUMENT
Invalid argument return code.
#define RCL_RET_ERROR
Unspecified error return code.
rmw_ret_t rcl_ret_t
The type that holds an rcl return code.