10 #include "spdlog/fmt/fmt.h"
28 static const std::map<int, std::string> log_level_map = {
29 { LOG_LEVEL_OFF,
"off" },
30 { LOG_LEVEL_FATAL,
"fatal" },
31 { LOG_LEVEL_ERROR,
"error" },
32 { LOG_LEVEL_WARN,
"warning" },
33 { LOG_LEVEL_INFO,
"info" },
34 { LOG_LEVEL_DEBUG,
"debug" },
35 { LOG_LEVEL_TRACE,
"trace" }
41 auto it = log_level_map.find(level);
42 if (it == log_level_map.end())
return "unknown";
96 extern std::shared_ptr<intf::CoreLogger>
CoreLogger(
const std::string& logname);
107 template<
int LOG_LEVEL>
114 core = itk::logger::make::CoreLogger(logname);
122 template<
typename... Args>
123 inline void log(
log_level_t level, fmt::format_string<Args...> fmt, Args &&...args) {
124 if (level >= LOG_LEVEL && core->should_log(level))
125 core->log_msg(level, fmt::format(fmt, std::forward<Args>(args)...));
131 template<
typename... Args>
132 inline void trace(fmt::format_string<Args...> fmt, Args &&...args) {
133 log(LOG_LEVEL_TRACE, fmt, std::forward<Args>(args)...);
139 template<
typename... Args>
140 inline void debug(fmt::format_string<Args...> fmt, Args &&...args) {
141 log(LOG_LEVEL_DEBUG, fmt, std::forward<Args>(args)...);
147 template<
typename... Args>
148 inline void info(fmt::format_string<Args...> fmt, Args &&...args) {
149 log(LOG_LEVEL_INFO, fmt, std::forward<Args>(args)...);
155 template<
typename... Args>
156 inline void warn(fmt::format_string<Args...> fmt, Args &&...args) {
157 log(LOG_LEVEL_WARN, fmt, std::forward<Args>(args)...);
163 template<
typename... Args>
164 inline void error(fmt::format_string<Args...> fmt, Args &&...args) {
165 log(LOG_LEVEL_ERROR, fmt, std::forward<Args>(args)...);
171 template<
typename... Args>
172 inline void fatal(fmt::format_string<Args...> fmt, Args &&...args) {
173 log(LOG_LEVEL_FATAL, fmt, std::forward<Args>(args)...);
193 inline void set_pattern(
const std::string& pattern) { core->set_pattern(pattern); }
198 std::shared_ptr<intf::CoreLogger> core;
Definition: logger.hpp:11
Logger class definition, wrapper around CoreLogger, adds templated methods for different logging leve...
Definition: logger.hpp:108
bool should_log(log_level_t level) const
Check if message with specified log level sould be logged.
Definition: logger.hpp:179
Logger(const std::string &logname)
Constructor.
Definition: logger.hpp:113
void error(fmt::format_string< Args... > fmt, Args &&...args)
Logs a message with error level.
Definition: logger.hpp:164
void debug(fmt::format_string< Args... > fmt, Args &&...args)
Logs a message with debug level.
Definition: logger.hpp:140
log_level_t get_level()
Properties.
Definition: logger.hpp:185
void set_pattern(const std::string &pattern)
Set logger message pattern.
Definition: logger.hpp:193
void fatal(fmt::format_string< Args... > fmt, Args &&...args)
Logs a message with fatal error level.
Definition: logger.hpp:172
void log(log_level_t level, fmt::format_string< Args... > fmt, Args &&...args)
Logging templates.
Definition: logger.hpp:123
void info(fmt::format_string< Args... > fmt, Args &&...args)
Logs a message with information level.
Definition: logger.hpp:148
void trace(fmt::format_string< Args... > fmt, Args &&...args)
Logs a message with trace level.
Definition: logger.hpp:132
void warn(fmt::format_string< Args... > fmt, Args &&...args)
Logs a message with warning level.
Definition: logger.hpp:156
void set_level(log_level_t level)
Set logger level.
Definition: logger.hpp:189
CoreLogger interface, includes only basic logging functionality.
Definition: logger.hpp:59
virtual void log_msg(log_level_t level, const std::string &msg)=0
Log a message.
virtual void set_level(log_level_t level)=0
Set logging level.
virtual bool should_log(log_level_t level) const =0
Check if message with specified log level will be logged.
virtual void set_pattern(const std::string &pattern)=0
Set logger message pattern.
virtual log_level_t get_level() const =0
Properties.
virtual ~CoreLogger()=default
Default destructor.
T * make(Args &... args)
Templated class creator.
Definition: factory.hpp:51
itk::Logger syslog
Default system logger.
void dump_loggers()
Dumps list of available loggers.
log_level_t
Logger level enumeration.
Definition: logger.hpp:17
std::string log_level_string(log_level_t level)
Logger level to text conversion.
Definition: logger.hpp:40
void set_log_level(std::string name, log_level_t level)
Set Logger level.