Skip to content

Commit c1d20ec

Browse files
committed
Return RCL_LOGGIND_RET_ERROR when getting envvars throw
1 parent 49ce6c1 commit c1d20ec

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

rcl_logging_spdlog/src/rcl_logging_spdlog.cpp

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -255,19 +255,25 @@ rcl_logging_ret_t rcl_logging_external_initialize(
255255
}
256256

257257
std::unique_ptr<spdlog::sinks::sink> sink;
258-
if (get_bool_env_var("RCL_LOGGING_SPDLOG_ROTATE_FILES") == true) {
259-
size_t max_size =
260-
get_size_t_env_var(
261-
"RCL_LOGGING_SPDLOG_ROTATING_FILE_SIZE_BYTES",
262-
DEFAULT_ROTATING_FILE_SIZE_BYTES);
263-
size_t max_files =
264-
get_size_t_env_var(
265-
"RCL_LOGGING_SPDLOG_MAX_NUM_FILES",
266-
DEFAULT_ROTATING_MAX_NUM_FILES);
267-
sink =
268-
std::make_unique<spdlog::sinks::rotating_file_sink_mt>(name_buffer, max_size, max_files);
269-
} else {
270-
sink = std::make_unique<spdlog::sinks::basic_file_sink_mt>(name_buffer, false);
258+
259+
try {
260+
if (get_bool_env_var("RCL_LOGGING_SPDLOG_ROTATE_FILES") == true) {
261+
size_t max_size =
262+
get_size_t_env_var(
263+
"RCL_LOGGING_SPDLOG_ROTATING_FILE_SIZE_BYTES",
264+
DEFAULT_ROTATING_FILE_SIZE_BYTES);
265+
size_t max_files =
266+
get_size_t_env_var(
267+
"RCL_LOGGING_SPDLOG_MAX_NUM_FILES",
268+
DEFAULT_ROTATING_MAX_NUM_FILES);
269+
sink =
270+
std::make_unique<spdlog::sinks::rotating_file_sink_mt>(name_buffer, max_size, max_files);
271+
} else {
272+
sink = std::make_unique<spdlog::sinks::basic_file_sink_mt>(name_buffer, false);
273+
}
274+
} catch (const std::runtime_error & error) {
275+
RCUTILS_SET_ERROR_MSG(error.what());
276+
return RCL_LOGGING_RET_ERROR;
271277
}
272278

273279
g_root_logger = std::make_shared<spdlog::logger>("root", std::move(sink));

0 commit comments

Comments
 (0)