fix SPDLOG-library related class

This commit is contained in:
2026-07-30 20:34:48 +03:00
parent b8ea6ce660
commit 9d3d7ab2e5

View File

@@ -81,6 +81,28 @@ public:
constexpr static std::array LOGGER_DEFAULT_FORMAT = {std::string_view{"[%Y-%m-%d %T.%e]"}, std::string_view{"[%l]"}, constexpr static std::array LOGGER_DEFAULT_FORMAT = {std::string_view{"[%Y-%m-%d %T.%e]"}, std::string_view{"[%l]"},
std::string_view{": "}, std::string_view{"%v"}}; std::string_view{": "}, std::string_view{"%v"}};
// special logger names
constexpr static std::string_view STDOUT_LOGGER_MARK{"stdout"};
constexpr static std::string_view STDERR_LOGGER_MARK{"stderr"};
constexpr static std::string_view NULL_LOGGER_MARK{"null"};
/* helper method */
static std::shared_ptr<spdlog::logger> makeLoggerFromMark(std::string const& mark, std::string const& name)
{
if (mark == STDOUT_LOGGER_MARK) {
return std::make_shared<spdlog::stdout_logger_mt>(name);
} else if (mark == STDERR_LOGGER_MARK) {
return std::make_shared<spdlog::stderr_logger_mt>(name);
} else if (mark == NULL_LOGGER_MARK) {
return std::make_shared<spdlog::null_logger_mt>(name);
} else { // 'mark' is filename here
return std::make_shared<spdlog::basic_logger_mt>(name, mark);
}
}
/* some factory static methods */ /* some factory static methods */
@@ -89,7 +111,7 @@ public:
static snplib_spdlog_logger_t makeConsoleLogger(std::string const& logger_name, static snplib_spdlog_logger_t makeConsoleLogger(std::string const& logger_name,
R const& pattern_range = LOGGER_DEFAULT_FORMAT) R const& pattern_range = LOGGER_DEFAULT_FORMAT)
{ {
return snplib_spdlog_logger_t(spdlog::stdout_logger_mt(logger_name), pattern_range); return snplib_spdlog_logger_t(std::make_shared<spdlog::stdout_logger_mt>(logger_name), pattern_range);
} }
template <std::ranges::input_range R = decltype(LOGGER_DEFAULT_FORMAT)> template <std::ranges::input_range R = decltype(LOGGER_DEFAULT_FORMAT)>
@@ -97,7 +119,7 @@ public:
static snplib_spdlog_logger_t makeConsoleErrLogger(std::string const& logger_name, static snplib_spdlog_logger_t makeConsoleErrLogger(std::string const& logger_name,
R const& pattern_range = LOGGER_DEFAULT_FORMAT) R const& pattern_range = LOGGER_DEFAULT_FORMAT)
{ {
return snplib_spdlog_logger_t(spdlog::stderr_logger_mt(logger_name), pattern_range); return snplib_spdlog_logger_t(std::make_shared<spdlog::stderr_logger_mt>(logger_name), pattern_range);
} }
@@ -105,7 +127,7 @@ public:
requires snplib_input_char_range_c<std::ranges::range_value_t<R>> requires snplib_input_char_range_c<std::ranges::range_value_t<R>>
static snplib_spdlog_logger_t makeNullLogger(std::string const& logger_name) static snplib_spdlog_logger_t makeNullLogger(std::string const& logger_name)
{ {
return snplib_spdlog_logger_t(spdlog::null_logger_mt(logger_name)); return snplib_spdlog_logger_t(std::make_shared<spdlog::null_logger_mt>(logger_name));
} }
@@ -132,6 +154,7 @@ public:
_loggerSPtr->set_pattern(_currentLogPattern); _loggerSPtr->set_pattern(_currentLogPattern);
} }
virtual ~snplib_spdlog_logger_t() = default; virtual ~snplib_spdlog_logger_t() = default;
void setLoglevel(spdlog::level::level_enum level) void setLoglevel(spdlog::level::level_enum level)