Fawkes API Fawkes Development Version
multi.h
1
2/***************************************************************************
3 * multi.h - Fawkes multi logger
4 *
5 * Created: Mon May 07 16:42:23 2007
6 * Copyright 2006-2007 Tim Niemueller [www.niemueller.de]
7 *
8 ****************************************************************************/
9
10/* This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version. A runtime exception applies to
14 * this software (see LICENSE.GPL_WRE file mentioned below for details).
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Library General Public License for more details.
20 *
21 * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22 */
23
24#ifndef _UTILS_LOGGING_MULTI_H_
25#define _UTILS_LOGGING_MULTI_H_
26
27#include <logging/logger.h>
28#include <logging/logger_employer.h>
29
30namespace fawkes {
31
32class MultiLoggerData;
33
34class MultiLogger : public Logger, public LoggerEmployer
35{
36public:
38 MultiLogger(Logger *logger);
39 virtual ~MultiLogger();
40
41 void add_logger(Logger *logger);
42 void remove_logger(Logger *logger);
43
44 virtual void set_loglevel(LogLevel level);
45
46 virtual void log(LogLevel level, const char *component, const char *format, ...);
47 virtual void log_debug(const char *component, const char *format, ...);
48 virtual void log_info(const char *component, const char *format, ...);
49 virtual void log_warn(const char *component, const char *format, ...);
50 virtual void log_error(const char *component, const char *format, ...);
51
52 virtual void log(LogLevel level, const char *component, Exception &e);
53 virtual void log_debug(const char *component, Exception &e);
54 virtual void log_info(const char *component, Exception &e);
55 virtual void log_warn(const char *component, Exception &e);
56 virtual void log_error(const char *component, Exception &e);
57
58 virtual void vlog(LogLevel level, const char *component, const char *format, va_list va);
59 virtual void vlog_debug(const char *component, const char *format, va_list va);
60 virtual void vlog_info(const char *component, const char *format, va_list va);
61 virtual void vlog_warn(const char *component, const char *format, va_list va);
62 virtual void vlog_error(const char *component, const char *format, va_list va);
63
64 virtual void
65 tlog(LogLevel level, struct timeval *t, const char *component, const char *format, ...);
66 virtual void tlog_debug(struct timeval *t, const char *component, const char *format, ...);
67 virtual void tlog_info(struct timeval *t, const char *component, const char *format, ...);
68 virtual void tlog_warn(struct timeval *t, const char *component, const char *format, ...);
69 virtual void tlog_error(struct timeval *t, const char *component, const char *format, ...);
70
71 virtual void tlog(LogLevel level, struct timeval *t, const char *component, Exception &e);
72 virtual void tlog_debug(struct timeval *t, const char *component, Exception &e);
73 virtual void tlog_info(struct timeval *t, const char *component, Exception &e);
74 virtual void tlog_warn(struct timeval *t, const char *component, Exception &e);
75 virtual void tlog_error(struct timeval *t, const char *component, Exception &e);
76
77 virtual void
78 vtlog(LogLevel level, struct timeval *t, const char *component, const char *format, va_list va);
79 virtual void
80 vtlog_debug(struct timeval *t, const char *component, const char *format, va_list va);
81 virtual void vtlog_info(struct timeval *t, const char *component, const char *format, va_list va);
82 virtual void vtlog_warn(struct timeval *t, const char *component, const char *format, va_list va);
83 virtual void
84 vtlog_error(struct timeval *t, const char *component, const char *format, va_list va);
85
86private:
87 MultiLoggerData *data;
88};
89
90} // end namespace fawkes
91
92#endif
Base class for exceptions in Fawkes.
Definition: exception.h:36
Logger employer The LoggerEmployer shall pipe all log messages of the system to added loggers.
Interface for logging.
Definition: logger.h:42
LogLevel
Log level.
Definition: logger.h:51
Log through multiple loggers.
Definition: multi.h:35
virtual void vlog(LogLevel level, const char *component, const char *format, va_list va)
Log message for given log level.
Definition: multi.cpp:334
virtual void log(LogLevel level, const char *component, const char *format,...)
Log message of given log level.
Definition: multi.cpp:153
virtual ~MultiLogger()
Destructor.
Definition: multi.cpp:95
virtual void tlog_warn(struct timeval *t, const char *component, const char *format,...)
Log warning message for specific time.
Definition: multi.cpp:479
virtual void log_info(const char *component, const char *format,...)
Log informational message.
Definition: multi.cpp:195
virtual void tlog_debug(struct timeval *t, const char *component, const char *format,...)
Log debug message for specific time.
Definition: multi.cpp:442
virtual void vtlog_error(struct timeval *t, const char *component, const char *format, va_list va)
Log error message for specific time.
Definition: multi.cpp:645
virtual void vlog_error(const char *component, const char *format, va_list va)
Log error message.
Definition: multi.cpp:406
virtual void vlog_debug(const char *component, const char *format, va_list va)
Log debug message.
Definition: multi.cpp:352
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.
Definition: multi.cpp:577
virtual void set_loglevel(LogLevel level)
Sets the log level.
Definition: multi.cpp:139
virtual void tlog_info(struct timeval *t, const char *component, const char *format,...)
Log informational message for specific time.
Definition: multi.cpp:460
virtual void vtlog_debug(struct timeval *t, const char *component, const char *format, va_list va)
Log debug message for specific time.
Definition: multi.cpp:597
void add_logger(Logger *logger)
Add a logger.
Definition: multi.cpp:110
virtual void log_warn(const char *component, const char *format,...)
Log warning message.
Definition: multi.cpp:216
virtual void vtlog_warn(struct timeval *t, const char *component, const char *format, va_list va)
Log warning message for specific time.
Definition: multi.cpp:629
virtual void log_debug(const char *component, const char *format,...)
Log debug message.
Definition: multi.cpp:174
virtual void vtlog_info(struct timeval *t, const char *component, const char *format, va_list va)
Log informational message for specific time.
Definition: multi.cpp:613
virtual void tlog_error(struct timeval *t, const char *component, const char *format,...)
Log error message for specific time.
Definition: multi.cpp:498
virtual void tlog(LogLevel level, struct timeval *t, const char *component, const char *format,...)
Log message of given log level and time.
Definition: multi.cpp:424
MultiLogger()
Constructor.
Definition: multi.cpp:77
virtual void vlog_info(const char *component, const char *format, va_list va)
Log informational message.
Definition: multi.cpp:370
virtual void log_error(const char *component, const char *format,...)
Log error message.
Definition: multi.cpp:237
void remove_logger(Logger *logger)
Remove logger.
Definition: multi.cpp:128
virtual void vlog_warn(const char *component, const char *format, va_list va)
Log warning message.
Definition: multi.cpp:388
Fawkes library namespace.