00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __UTILS_LOGGING_MULTI_H_
00025 #define __UTILS_LOGGING_MULTI_H_
00026
00027 #include <utils/logging/logger.h>
00028
00029 namespace fawkes {
00030
00031
00032 class MultiLoggerData;
00033
00034 class MultiLogger : public Logger
00035 {
00036 public:
00037 MultiLogger();
00038 MultiLogger(Logger *logger);
00039 virtual ~MultiLogger();
00040
00041 void add_logger(Logger *logger);
00042 void remove_logger(Logger *logger);
00043
00044 virtual void set_loglevel(LogLevel level);
00045
00046 virtual void log(LogLevel level,
00047 const char *component, const char *format, ...);
00048 virtual void log_debug(const char *component, const char *format, ...);
00049 virtual void log_info(const char *component, const char *format, ...);
00050 virtual void log_warn(const char *component, const char *format, ...);
00051 virtual void log_error(const char *component, const char *format, ...);
00052
00053
00054 virtual void log(LogLevel level, const char *component, Exception &e);
00055 virtual void log_debug(const char *component, Exception &e);
00056 virtual void log_info(const char *component, Exception &e);
00057 virtual void log_warn(const char *component, Exception &e);
00058 virtual void log_error(const char *component, Exception &e);
00059
00060 virtual void vlog(LogLevel level, const char *component,
00061 const char *format, va_list va);
00062 virtual void vlog_debug(const char *component, const char *format, va_list va);
00063 virtual void vlog_info(const char *component, const char *format, va_list va);
00064 virtual void vlog_warn(const char *component, const char *format, va_list va);
00065 virtual void vlog_error(const char *component, const char *format, va_list va);
00066
00067 virtual void tlog(LogLevel level, struct timeval *t,
00068 const char *component, const char *format, ...);
00069 virtual void tlog_debug(struct timeval *t, const char *component,
00070 const char *format, ...);
00071 virtual void tlog_info(struct timeval *t, const char *component,
00072 const char *format, ...);
00073 virtual void tlog_warn(struct timeval *t, const char *component,
00074 const char *format, ...);
00075 virtual void tlog_error(struct timeval *t, const char *component,
00076 const char *format, ...);
00077
00078 virtual void tlog(LogLevel level, struct timeval *t, const char *component, Exception &e);
00079 virtual void tlog_debug(struct timeval *t, const char *component, Exception &e);
00080 virtual void tlog_info(struct timeval *t, const char *component, Exception &e);
00081 virtual void tlog_warn(struct timeval *t, const char *component, Exception &e);
00082 virtual void tlog_error(struct timeval *t, const char *component, Exception &e);
00083
00084 virtual void vtlog(LogLevel level, struct timeval *t, const char *component,
00085 const char *format, va_list va);
00086 virtual void vtlog_debug(struct timeval *t, const char *component,
00087 const char *format, va_list va);
00088 virtual void vtlog_info(struct timeval *t, const char *component,
00089 const char *format, va_list va);
00090 virtual void vtlog_warn(struct timeval *t, const char *component,
00091 const char *format, va_list va);
00092 virtual void vtlog_error(struct timeval *t, const char *component,
00093 const char *format, va_list va);
00094
00095
00096 private:
00097 MultiLoggerData *data;
00098 };
00099
00100
00101 }
00102
00103 #endif