4#include <carl/io/streamingOperators.h>
10#if defined(__GNUC__) || defined(__clang__)
11#pragma GCC visibility push(default)
14#if defined(__GNUC__) || defined(__clang__)
15#pragma GCC visibility pop
21#if !defined(STORM_LOG_DISABLE_DEBUG) && !defined(STORM_LOG_DISABLE_TRACE)
22#define STORM_LOG_TRACE(message) L3PP_LOG_TRACE(l3pp::Logger::getRootLogger(), message)
24#define STORM_LOG_TRACE(message) (void)(0)
27#if !defined(STORM_LOG_DISABLE_DEBUG)
28#define STORM_LOG_DEBUG(message) L3PP_LOG_DEBUG(l3pp::Logger::getRootLogger(), message)
30#define STORM_LOG_DEBUG(message) (void)(0)
34#define STORM_LOG_INFO(message) L3PP_LOG_INFO(l3pp::Logger::getRootLogger(), message)
35#define STORM_LOG_WARN(message) L3PP_LOG_WARN(l3pp::Logger::getRootLogger(), message)
36#define STORM_LOG_ERROR(message) L3PP_LOG_ERROR(l3pp::Logger::getRootLogger(), message)
48#define STORM_LOG_STATISTICS(message) L3PP_LOG_INFO(storm::utility::STATISTICS_LOG_CHANNEL, message)
49#define STORM_LOG_PROGRESS(message) L3PP_LOG_INFO(storm::utility::PROGRESS_LOG_CHANNEL, message)
61#define STORM_LOG_LAZY_ON_CHANNEL(channel, level, ...) \
63 auto storm_log_lazy_channel = l3pp::Logger::getLogger(channel); \
64 if (storm_log_lazy_channel->getLevel() <= (level)) { \
65 auto storm_log_lazy_callback = __VA_ARGS__; \
66 static_assert(std::is_invocable_r_v<bool, decltype(storm_log_lazy_callback), std::ostream&>, "callback must have signature bool(std::ostream&)"); \
67 std::ostringstream storm_log_lazy_stream; \
68 if (storm_log_lazy_callback(storm_log_lazy_stream)) { \
69 storm_log_lazy_channel->log(level, __L3PP_LOG_RECORD) << storm_log_lazy_stream.str(); \
75#define STORM_LOG_STATISTICS_LAZY(...) STORM_LOG_LAZY_ON_CHANNEL(storm::utility::STATISTICS_LOG_CHANNEL, l3pp::LogLevel::INFO, __VA_ARGS__)
77#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