@@ -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