From 08ac5f0b10c510c6b9925966eab40b7ba598ecc1 Mon Sep 17 00:00:00 2001 From: emeric Date: Thu, 17 Jul 2025 20:52:06 +0200 Subject: [PATCH] Added a macro to log with a condition --- src/libs/core/include/core/ILogger.hpp | 7 +++++++ src/libs/database/impl/objects/Artist.cpp | 6 ++---- src/libs/database/impl/objects/PlayListFile.cpp | 3 +-- src/libs/database/impl/objects/Track.cpp | 9 +++------ 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/libs/core/include/core/ILogger.hpp b/src/libs/core/include/core/ILogger.hpp index 8c7ee446..336898e9 100644 --- a/src/libs/core/include/core/ILogger.hpp +++ b/src/libs/core/include/core/ILogger.hpp @@ -101,3 +101,10 @@ namespace lms::core::logging if (auto* logger_{ ::lms::core::Service<::lms::core::logging::ILogger>::get() }; logger_ && logger_->isSeverityActive(::lms::core::logging::Severity::severity)) \ ::lms::core::logging::Log{ *logger_, ::lms::core::logging::Module::module, ::lms::core::logging::Severity::severity }.getOstream() << message; \ } while (0) + +#define LMS_LOG_IF(module, severity, cond, message) \ + do \ + { \ + if (auto* logger_{ ::lms::core::Service<::lms::core::logging::ILogger>::get() }; logger_ && logger_->isSeverityActive(::lms::core::logging::Severity::severity) && cond) \ + ::lms::core::logging::Log{ *logger_, ::lms::core::logging::Module::module, ::lms::core::logging::Severity::severity }.getOstream() << message; \ + } while (0) diff --git a/src/libs/database/impl/objects/Artist.cpp b/src/libs/database/impl/objects/Artist.cpp index 86d0b029..368c87ab 100644 --- a/src/libs/database/impl/objects/Artist.cpp +++ b/src/libs/database/impl/objects/Artist.cpp @@ -445,16 +445,14 @@ AND NOT EXISTS ( void Artist::setName(std::string_view name) { _name.assign(name, 0, _maxNameLength); - if (name.size() > _maxNameLength) - LMS_LOG(DB, WARNING, "Artist name too long, truncated to '" << _name << "'"); + LMS_LOG_IF(DB, WARNING, name.size() > _maxNameLength, "Artist name too long, truncated to '" << _name << "'"); } void Artist::setSortName(std::string_view sortName) { _sortName.assign(sortName, 0, _maxNameLength); - if (sortName.size() > _maxNameLength) - LMS_LOG(DB, WARNING, "Artist sort name too long, truncated to '" << _sortName << "'"); + LMS_LOG_IF(DB, WARNING, sortName.size() > _maxNameLength, "Artist sort name too long, truncated to '" << _sortName << "'"); } void Artist::setPreferredArtwork(ObjectPtr artwork) diff --git a/src/libs/database/impl/objects/PlayListFile.cpp b/src/libs/database/impl/objects/PlayListFile.cpp index 17bf4036..e7b408d1 100644 --- a/src/libs/database/impl/objects/PlayListFile.cpp +++ b/src/libs/database/impl/objects/PlayListFile.cpp @@ -167,8 +167,7 @@ namespace lms::db void PlayListFile::setName(std::string_view name) { _name = std::string{ name, 0, _maxNameLength }; - if (name.size() > _maxNameLength) - LMS_LOG(DB, WARNING, "PlaylistFile name too long, truncated to '" << _name << "'"); + LMS_LOG_IF(DB, WARNING, name.size() > _maxNameLength, "PlaylistFile name too long, truncated to '" << _name << "'"); } void PlayListFile::setFiles(std::span files) diff --git a/src/libs/database/impl/objects/Track.cpp b/src/libs/database/impl/objects/Track.cpp index ab731be5..4925b3e3 100644 --- a/src/libs/database/impl/objects/Track.cpp +++ b/src/libs/database/impl/objects/Track.cpp @@ -511,22 +511,19 @@ namespace lms::db void Track::setName(std::string_view name) { _name = std::string{ name, 0, _maxNameLength }; - if (name.size() > _maxNameLength) - LMS_LOG(DB, WARNING, "Track name too long, truncated to '" << _name << "'"); + LMS_LOG_IF(DB, WARNING, name.size() > _maxNameLength, "Track name too long, truncated to '" << _name << "'"); } void Track::setCopyright(std::string_view copyright) { _copyright = std::string{ copyright, 0, _maxCopyrightLength }; - if (copyright.size() > _maxCopyrightLength) - LMS_LOG(DB, WARNING, "Track copyright too long, truncated to '" << _copyright << "'"); + LMS_LOG_IF(DB, WARNING, copyright.size() > _maxCopyrightLength, "Track copyright too long, truncated to '" << _copyright << "'"); } void Track::setCopyrightURL(std::string_view copyrightURL) { _copyrightURL = std::string{ copyrightURL, 0, _maxCopyrightURLLength }; - if (copyrightURL.size() > _maxCopyrightURLLength) - LMS_LOG(DB, WARNING, "Track copyright URL too long, truncated to '" << _copyrightURL << "'"); + LMS_LOG_IF(DB, WARNING, copyrightURL.size() > _maxCopyrightURLLength, "Track copyright URL too long, truncated to '" << _copyrightURL << "'"); } void Track::clearArtistLinks()