aboutsummaryrefslogtreecommitdiff
path: root/include/logger.h
blob: d50cb3cec177c096c6963049163b3ec17349e294 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef LOGGER__H
#define LOGGER__H

#include <fstream>
#include <mutex.h>

namespace newsbeuter {

	enum loglevel { LOG_NONE = 0, LOG_USERERROR, LOG_CRITICAL, LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG };

class logger {
	public:
		logger();
		~logger() { }
		void set_logfile(const char * logfile);
		void set_errorlogfile(const char * logfile);
		void set_loglevel(loglevel level);
		void log(loglevel level, const char * format, ...);
	private:
		loglevel curlevel;
		mutex mtx;
		std::fstream f;
		std::fstream ef;
};

logger& GetLogger();

}

#endif