24#ifndef _UTILS_LOGGING_LOGGER_H_
25#define _UTILS_LOGGING_LOGGER_H_
27#include <core/exception.h>
32#if defined(FAWKES_NO_LOGGING_FORMAT_CHECK)
33# define FAKWES_LOGGING_FORMAT_CHECK(string, arguments)
35# define FAKWES_LOGGING_FORMAT_CHECK(string, arguments) \
36 __attribute__((__format__(printf, string, arguments)))
69 FAKWES_LOGGING_FORMAT_CHECK(4, 5)
70 virtual
void log(
LogLevel level, const
char *component, const
char *format, ...);
71 FAKWES_LOGGING_FORMAT_CHECK(3, 4)
72 virtual
void log_debug(const
char *component, const
char *format, ...) = 0;
73 FAKWES_LOGGING_FORMAT_CHECK(3, 4)
74 virtual
void log_info(const
char *component, const
char *format, ...) = 0;
75 FAKWES_LOGGING_FORMAT_CHECK(3, 4)
76 virtual
void log_warn(const
char *component, const
char *format, ...) = 0;
77 FAKWES_LOGGING_FORMAT_CHECK(3, 4)
78 virtual
void log_error(const
char *component, const
char *format, ...) = 0;
86 virtual
void vlog(
LogLevel level, const
char *component, const
char *format, va_list va);
87 virtual
void vlog_debug(const
char *component, const
char *format, va_list va) = 0;
88 virtual
void vlog_info(const
char *component, const
char *format, va_list va) = 0;
89 virtual
void vlog_warn(const
char *component, const
char *format, va_list va) = 0;
90 virtual
void vlog_error(const
char *component, const
char *format, va_list va) = 0;
92 FAKWES_LOGGING_FORMAT_CHECK(5, 6)
94 tlog(
LogLevel level, struct timeval *t, const
char *component, const
char *format, ...);
95 FAKWES_LOGGING_FORMAT_CHECK(4, 5)
96 virtual
void tlog_debug(struct timeval *t, const
char *component, const
char *format, ...) = 0;
97 FAKWES_LOGGING_FORMAT_CHECK(4, 5)
98 virtual
void tlog_info(struct timeval *t, const
char *component, const
char *format, ...) = 0;
99 FAKWES_LOGGING_FORMAT_CHECK(4, 5)
100 virtual
void tlog_warn(struct timeval *t, const
char *component, const
char *format, ...) = 0;
101 FAKWES_LOGGING_FORMAT_CHECK(4, 5)
102 virtual
void tlog_error(struct timeval *t, const
char *component, const
char *format, ...) = 0;
111 vtlog(
LogLevel level, struct timeval *t, const
char *component, const
char *format, va_list va);
113 vtlog_debug(struct timeval *t, const
char *component, const
char *format, va_list va) = 0;
115 vtlog_info(struct timeval *t, const
char *component, const
char *format, va_list va) = 0;
117 vtlog_warn(struct timeval *t, const
char *component, const
char *format, va_list va) = 0;
119 vtlog_error(struct timeval *t, const
char *component, const
char *format, va_list va) = 0;
Base class for exceptions in Fawkes.
virtual void vlog_error(const char *component, const char *format, va_list va)=0
Log error message.
virtual void vtlog(LogLevel level, struct timeval *t, const char *component, const char *format, va_list va)
Log message for given log level and time.
virtual void tlog(LogLevel level, struct timeval *t, const char *component, const char *format,...)
Log message of given log level and time.
virtual void vtlog_info(struct timeval *t, const char *component, const char *format, va_list va)=0
Log informational message for specific time.
virtual void tlog_warn(struct timeval *t, const char *component, const char *format,...)=0
Log warning message for specific time.
virtual LogLevel loglevel()
Get log level.
virtual void log_debug(const char *component, const char *format,...)=0
Log debug message.
virtual void tlog_error(struct timeval *t, const char *component, const char *format,...)=0
Log error message for specific time.
virtual void vtlog_warn(struct timeval *t, const char *component, const char *format, va_list va)=0
Log warning message for specific time.
virtual void vtlog_error(struct timeval *t, const char *component, const char *format, va_list va)=0
Log error message for specific time.
virtual ~Logger()
Virtual empty destructor.
virtual void log_warn(const char *component, const char *format,...)=0
Log warning message.
Logger(LogLevel log_level=LL_DEBUG)
Constructor.
virtual void tlog_debug(struct timeval *t, const char *component, const char *format,...)=0
Log debug message for specific time.
virtual void log(LogLevel level, const char *component, const char *format,...)
Log message of given log level.
virtual void log_error(const char *component, const char *format,...)=0
Log error message.
virtual void vlog_debug(const char *component, const char *format, va_list va)=0
Log debug message.
virtual void vlog_info(const char *component, const char *format, va_list va)=0
Log informational message.
@ LL_INFO
informational output about normal procedures
@ LL_WARN
warning, should be investigated but software still functions, an example is that something was reques...
@ LL_NONE
use this to disable log output
@ LL_ERROR
error, may be recoverable (software still running) or not (software has to terminate).
@ LL_DEBUG
debug output, relevant only when tracking down problems
virtual void vtlog_debug(struct timeval *t, const char *component, const char *format, va_list va)=0
Log debug message for specific time.
virtual void vlog_warn(const char *component, const char *format, va_list va)=0
Log warning message.
virtual void set_loglevel(LogLevel level)
Sets the log level.
virtual void vlog(LogLevel level, const char *component, const char *format, va_list va)
Log message for given log level.
virtual void log_info(const char *component, const char *format,...)=0
Log informational message.
LogLevel log_level
Minimum log level.
virtual void tlog_info(struct timeval *t, const char *component, const char *format,...)=0
Log informational message for specific time.
Fawkes library namespace.