14#if defined(THREADS_STD)
19#define LOG_DEBUG(msg) logger->debug([=]() { return msg; })
20#define LOG_INFO(msg) logger->info([=]() { return msg; })
21#define LOG_WARN(msg) logger->warn([=]() { return msg; })
22#define LOG_ERROR(msg) logger->error([=]() { return msg; })
24#define LOG_DEBUG_S(msg) LOG_DEBUG(std::string(msg))
25#define LOG_INFO_S(msg) LOG_INFO(std::string(msg))
26#define LOG_WARN_S(msg) LOG_WARN(std::string(msg))
27#define LOG_ERROR_S(msg) LOG_ERROR(std::string(msg))
55 std::string_view ifileName,
74 template <
typename T>
void debug(T ilazyMessage)
noexcept {
76 std::scoped_lock lock(logfileMutex);
78 "%ld (%s) DEBUG: %s\n",
79 static_cast<long>(timer->millis().convert(
millisecond)),
81 ilazyMessage().c_str());
89 template <
typename T>
void info(T ilazyMessage)
noexcept {
91 std::scoped_lock lock(logfileMutex);
93 "%ld (%s) INFO: %s\n",
94 static_cast<long>(timer->millis().convert(
millisecond)),
96 ilazyMessage().c_str());
104 template <
typename T>
void warn(T ilazyMessage)
noexcept {
106 std::scoped_lock lock(logfileMutex);
108 "%ld (%s) WARN: %s\n",
109 static_cast<long>(timer->millis().convert(
millisecond)),
111 ilazyMessage().c_str());
119 template <
typename T>
void error(T ilazyMessage)
noexcept {
121 std::scoped_lock lock(logfileMutex);
123 "%ld (%s) ERROR: %s\n",
124 static_cast<long>(timer->millis().convert(
millisecond)),
126 ilazyMessage().c_str());
154 const std::unique_ptr<AbstractTimer> timer;
159 static bool isSerialStream(std::string_view filename);
179#if defined(THREADS_STD)
constexpr void close() noexcept
Closes the connection to the log file.
constexpr bool isErrorLevelEnabled() const noexcept
static void setDefaultLogger(std::shared_ptr< Logger > ilogger)
Sets a new default logger.
void warn(T ilazyMessage) noexcept
void debug(T ilazyMessage) noexcept
constexpr bool isWarnLevelEnabled() const noexcept
void info(T ilazyMessage) noexcept
Logger() noexcept
A logger that does nothing.
void error(T ilazyMessage) noexcept
constexpr bool isDebugLevelEnabled() const noexcept
static std::shared_ptr< Logger > getDefaultLogger()
constexpr bool isInfoLevelEnabled() const noexcept
constexpr QTime millisecond
constexpr auto toUnderlyingType(const E e) noexcept
Converts an enum to its value type.
static DefaultLoggerInitializer defaultLoggerInitializer
std::shared_ptr< Logger > defaultLogger
DefaultLoggerInitializer()
~DefaultLoggerInitializer()