diff options
author | Tobias Klauser <tobias.klauser@uzh.ch> | 2013-01-28 16:15:50 +0100 |
---|---|---|
committer | Tobias Klauser <tklauser@distanz.ch> | 2013-01-28 16:33:08 +0100 |
commit | d2fb8067167785b299482d247aaf90a35f55b62c (patch) | |
tree | d12fc756e9fecf935cbc46e1d6a3f89895868049 /Logger.h | |
parent | e5e089fe6c136d3962a066f9a8c7b56009459b16 (diff) |
LocomotorPrimitives: Switch to using Logger class for logging
Diffstat (limited to 'Logger.h')
-rw-r--r-- | Logger.h | 42 |
1 files changed, 42 insertions, 0 deletions
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 <tklauser@distanz.ch> + * + * This file is subject to the terms and conditions of the GNU General + * Public License, version 2. + */ + +#ifndef LOGGER_H_ +#define LOGGER_H_ + +#include <stdarg.h> +#include <stdio.h> + +/* 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_ */ |