24 #include <logging/console.h>
25 #include <logging/factory.h>
26 #include <logging/file.h>
27 #include <logging/multi.h>
28 #include <logging/syslog.h>
67 LoggerFactory::string_to_loglevel(
const char *log_level)
69 std::string ll = log_level;
71 if (ll ==
"info" || ll ==
"INFO") {
73 }
else if (ll ==
"warn" || ll ==
"WARN") {
75 }
else if (ll ==
"error" || ll ==
"ERROR") {
102 if (strcmp(type,
"console") == 0) {
105 }
else if (strcmp(type,
"file") == 0) {
106 char * tmp = strdup(as);
108 char * r = strtok_r(tmp,
":", &saveptr);
109 const char *file_name;
110 r = strtok_r(tmp,
":", &saveptr);
112 file_name =
"unnamed.log";
118 }
else if (strcmp(type,
"syslog") == 0) {
147 char * logger_string = strdup(as);
148 char * str = logger_string;
150 const char *type, *args, *level;
151 char * typeargs_saveptr, *level_saveptr, *type_str;
152 const char *logger_delim =
";";
153 const char *logger_typeargs_delim =
":";
154 const char *logger_level_delim =
"/";
155 while ((r = strtok_r(str, logger_delim, &saveptr)) != NULL) {
156 type = strtok_r(r, logger_typeargs_delim, &typeargs_saveptr);
157 args = strtok_r(NULL, logger_typeargs_delim, &typeargs_saveptr);
159 type_str = strdup(type);
161 type = strtok_r(type_str, logger_level_delim, &level_saveptr);
162 level = strtok_r(NULL, logger_level_delim, &level_saveptr);
179 e.
append(
"Could not open logger '%s:%s'", type, args);
Interface for logging to stderr.
Base class for exceptions in Fawkes.
void append(const char *format,...) noexcept
Append messages to the message list.
Interface for logging to a specified file.
static MultiLogger * multilogger_instance(const char *as, Logger::LogLevel default_ll=Logger::LL_DEBUG)
Create MultiLogger instance.
static Logger * instance(const char *type, const char *as)
Get logger instance.
@ 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_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 set_loglevel(LogLevel level)
Sets the log level.
Log through multiple loggers.
virtual void set_loglevel(LogLevel level)
Sets the log level.
void add_logger(Logger *logger)
Add a logger.
Interface for logging to syslog.
Unknown logger type exception.
UnknownLoggerTypeException(const char *msg=NULL)
Constructor.
Fawkes library namespace.