/** * General purpose logger class. * * Copyright (C) 2013 Tobias Klauser * * This file is subject to the terms and conditions of the GNU General * Public License, version 2. */ #ifndef LOGGER_H_ #define LOGGER_H_ #include #include /* TODO: Make singleton */ class Logger { public: static Logger& getInstance() { // instantiated on first use, guaranteed to be destroyed static Logger instance; return instance; } int log(const char *fmt, ...); int warn(const char *fmt, ...); int err(const char *fmt, ...); private: Logger() : _f_out(stdout), _f_err(stderr) { } ~Logger() { } // Declare copy constructer to prevent the compiler from generating one Logger(Logger const&); void operator=(Logger const&); FILE *_f_out, *_f_err; static const char *_LOGGER_DATE_FMT; int _log_vfprintf(FILE *f, const char *prefix, const char *fmt, va_list ap); }; #endif /* LOGGER_H_ */