4#include <carl/io/streamingOperators.h>
14#if !defined(STORM_LOG_DISABLE_DEBUG) && !defined(STORM_LOG_DISABLE_TRACE)
15#define STORM_LOG_TRACE(message) L3PP_LOG_TRACE(l3pp::Logger::getRootLogger(), message)
17#define STORM_LOG_TRACE(message) (void)(0)
20#if !defined(STORM_LOG_DISABLE_DEBUG)
21#define STORM_LOG_DEBUG(message) L3PP_LOG_DEBUG(l3pp::Logger::getRootLogger(), message)
23#define STORM_LOG_DEBUG(message) (void)(0)
27#define STORM_LOG_INFO(message) L3PP_LOG_INFO(l3pp::Logger::getRootLogger(), message)
28#define STORM_LOG_WARN(message) L3PP_LOG_WARN(l3pp::Logger::getRootLogger(), message)
29#define STORM_LOG_ERROR(message) L3PP_LOG_ERROR(l3pp::Logger::getRootLogger(), message)
41#define STORM_LOG_STATISTICS(message) L3PP_LOG_INFO(storm::utility::STATISTICS_LOG_CHANNEL, message)
42#define STORM_LOG_PROGRESS(message) L3PP_LOG_INFO(storm::utility::PROGRESS_LOG_CHANNEL, message)
54#define STORM_LOG_LAZY_ON_CHANNEL(channel, level, ...) \
56 auto storm_log_lazy_channel = l3pp::Logger::getLogger(channel); \
57 if (storm_log_lazy_channel->getLevel() <= (level)) { \
58 auto storm_log_lazy_callback = __VA_ARGS__; \
59 static_assert(std::is_invocable_r_v<bool, decltype(storm_log_lazy_callback), std::ostream&>, "callback must have signature bool(std::ostream&)"); \
60 std::ostringstream storm_log_lazy_stream; \
61 if (storm_log_lazy_callback(storm_log_lazy_stream)) { \
62 storm_log_lazy_channel->log(level, __L3PP_LOG_RECORD) << storm_log_lazy_stream.str(); \
68#define STORM_LOG_STATISTICS_LAZY(...) STORM_LOG_LAZY_ON_CHANNEL(storm::utility::STATISTICS_LOG_CHANNEL, l3pp::LogLevel::INFO, __VA_ARGS__)
70#define STORM_LOG_PROGRESS_LAZY(...) STORM_LOG_LAZY_ON_CHANNEL(storm::utility::PROGRESS_LOG_CHANNEL, l3pp::LogLevel::INFO, __VA_ARGS__)
constexpr const char * STATISTICS_LOG_CHANNEL
constexpr const char * PROGRESS_LOG_CHANNEL