summaryrefslogtreecommitdiff
path: root/osframework/source/SexyAppFramework/SexyLogManager.h
blob: 3b8c847aecebf9c3ee0d5f056ed8c97ce7fe8a3a (plain)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef __SEXY_LOG_MANAGER_H__
#define __SEXY_LOG_MANAGER_H__

#include "SexyLogListener.h"

namespace Sexy {

	class LogManager {
	 private:
		LogManager();
		~LogManager();

	 public:
		static LogManager& getInstance();
		static void release();

		void silent();
		void setListener(LogListener* listener);
		void log(LogLevel lvl, const std::string& tag, const std::string& s);
		void setVerboseLevel(LogLevel lvl);
		LogLevel getVerboseLevel();
		std::string getDefaultTag();
		void setDefaultTag(const std::string& tag);
		LogFormat getDefaultFormat();
		void setDefaultFormat(LogFormat format);

	 private:
		void setupDefaultListener();
		void resetListener();

	 private:
		LogListener* mListener;
		LogListener* mDefaultListener;
		LogLevel mVerboseLevel;
		std::string mDefaultTag;
		LogFormat mDefaultFormat;
		std::string mDefaultTarget;

		static LogManager msLogManager;
	};

}

#endif