From d2fb8067167785b299482d247aaf90a35f55b62c Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Mon, 28 Jan 2013 16:15:50 +0100 Subject: LocomotorPrimitives: Switch to using Logger class for logging --- Logger.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Logger.h (limited to 'Logger.h') diff --git a/Logger.h b/Logger.h new file mode 100644 index 0000000..5ee5bd4 --- /dev/null +++ b/Logger.h @@ -0,0 +1,42 @@ +/** + * 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 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_ */ -- cgit v1.2.3-54-g00ecf