rad 8.2.0
Loading...
Searching...
No Matches
logger.hpp
Go to the documentation of this file.
1
9
10#ifndef RAD_LOGGER_HPP
11#define RAD_LOGGER_HPP
12
13#include <log4cplus/logger.h>
14#include <log4cplus/loggingmacros.h>
15#include <log4cplus/configurator.h>
16#include <log4cplus/initializer.h>
17
18#ifdef NDEBUG
19#define RAD_TRACE(logger)
20#else
21#define RAD_TRACE(logger) \
22 LOG4CPLUS_TRACE(logger, __FILE__ << " " << __FUNCTION__ << " " << __LINE__)
23#endif
24
25#if 0
26#define LOG4CPLUS_STATE(logger, log_event) \
27 if (logger.isEnabledFor(log4cplus::STATE_LOG_LEVEL)) { \
28 log4cplus::tostringstream _log4cplus_buf; \
29 _log4cplus_buf << log_event; \
30 logger.forcedLog(log4cplus::STATE_LOG_LEVEL, _log4cplus_buf.str(), __FILE__, __LINE__); \
31 }
32
33#define LOG4CPLUS_EVENT(logger, log_event) \
34 if (logger.isEnabledFor(log4cplus::EVENT_LOG_LEVEL)) { \
35 log4cplus::tostringstream _log4cplus_buf; \
36 _log4cplus_buf << log_event; \
37 logger.forcedLog(log4cplus::EVENT_LOG_LEVEL, _log4cplus_buf.str(), __FILE__, __LINE__); \
38 }
39
40#define LOG4CPLUS_ACTION(logger, log_event) \
41 if (logger.isEnabledFor(log4cplus::ACTION_LOG_LEVEL)) { \
42 log4cplus::tostringstream _log4cplus_buf; \
43 _log4cplus_buf << log_event; \
44 logger.forcedLog(log4cplus::ACTION_LOG_LEVEL, _log4cplus_buf.str(), __FILE__, __LINE__); \
45 }
46
47#define LOG4CPLUS_GUARD(logger, log_event) \
48 if (logger.isEnabledFor(log4cplus::GUARD_LOG_LEVEL)) { \
49 log4cplus::tostringstream _log4cplus_buf; \
50 _log4cplus_buf << log_event; \
51 logger.forcedLog(log4cplus::GUARD_LOG_LEVEL, _log4cplus_buf.str(), __FILE__, __LINE__); \
52 }
53
54namespace log4cplus {
55
56// OFF, FATAL, ERROR, WARN,
57// INFO_LOG_LEVEL = 20000
58const LogLevel STATE_LOG_LEVEL = 10105;
59const LogLevel EVENT_LOG_LEVEL = 10104;
60const LogLevel ACTION_LOG_LEVEL = 10102;
61const LogLevel GUARD_LOG_LEVEL = 10101;
62// DEBUG_LOG_LEVEL = 10000
63// TRACE_LOG_LEVEL = 0 (all)
64
65static log4cplus::tstring const STATE_LOG_LEVEL_STR(LOG4CPLUS_TEXT("STATE"));
66static log4cplus::tstring const EVENT_LOG_LEVEL_STR(LOG4CPLUS_TEXT("EVENT"));
67static log4cplus::tstring const ACTION_LOG_LEVEL_STR(LOG4CPLUS_TEXT("ACTION"));
68static log4cplus::tstring const GUARD_LOG_LEVEL_STR(LOG4CPLUS_TEXT("GUARD"));
69static log4cplus::tstring const EMPTY_LOG_LEVEL_STR(LOG4CPLUS_TEXT(""));
70
71} // namespace log4cplus
72#endif
73
74namespace rad {
75
76const std::string LOGGER_NAME = "rad";
77const std::string SM_LOGGER_NAME = "rad.sm";
78const std::string APP_LOGGER_NAME = "app";
79
96std::map<std::string, std::string> GetDefaultLogProperties(const std::string&
97 logsink_filename, const std::string& log_level = "ERROR");
98
102log4cplus::Logger& GetLogger();
103
108log4cplus::Logger& GetSmLogger();
109
113log4cplus::Logger& GetAppLogger();
114
118log4cplus::Logger& GetRootLogger();
119
120
121#if 0
122log4cplus::tstring const& RadLogLevelToString(log4cplus::LogLevel ll);
123log4cplus::LogLevel RadStringToLogLevel(const log4cplus::tstring& str);
124#endif
125
132public:
137 inline LogInitializer() {
138 log4cplus::BasicConfigurator().configure();
139 // log4cplus::Logger::getInstance(rad::LOGGER_NAME).setLogLevel(log4cplus::GUARD_LOG_LEVEL);
140 GetLogger().setLogLevel(log4cplus::ERROR_LOG_LEVEL);
141 GetSmLogger().setLogLevel(log4cplus::ERROR_LOG_LEVEL);
142#if 0
143 /*
144 * Add RAD specific Log Levels.
145 */
146 log4cplus::getLogLevelManager().pushToStringMethod(rad::RadLogLevelToString);
147 log4cplus::getLogLevelManager().pushFromStringMethod(rad::RadStringToLogLevel);
148#endif
149 }
150
155 inline ~LogInitializer() = default;
156
162 inline void Configure(const std::string& filename = "") {
163 if (filename.size() > 0) {
164 log4cplus::PropertyConfigurator::doConfigure(filename);
165 LOG4CPLUS_INFO(GetLogger(), "Loaded log properties: " << filename);
166 }
167 }
168
171
172private:
173 log4cplus::Initializer m_initializer;
174};
175
176} // namespace rad
177
178#endif // RAD_LOGGER_HPP
179
~LogInitializer()=default
LogInitializer & operator=(const LogInitializer &)=delete
LogInitializer(const LogInitializer &)=delete
LogInitializer()
Definition logger.hpp:137
void Configure(const std::string &filename="")
Definition logger.hpp:162
Definition actionsApp.cpp:67
const std::string LOGGER_NAME
Definition logger.hpp:76
std::map< std::string, std::string > GetDefaultLogProperties(const std::string &logsink_filename, const std::string &log_level="ERROR")
Definition logger.cpp:46
log4cplus::Logger & GetLogger()
Definition logger.cpp:72
log4cplus::Logger & GetRootLogger()
Definition logger.cpp:87
log4cplus::Logger & GetSmLogger()
Definition logger.cpp:77
const std::string SM_LOGGER_NAME
Definition logger.hpp:77
const std::string APP_LOGGER_NAME
Definition logger.hpp:78
log4cplus::Logger & GetAppLogger()
Definition logger.cpp:82