30 #ifndef __TERRALIB_CORE_LOGGER_LOGGER_H__
31 #define __TERRALIB_CORE_LOGGER_LOGGER_H__
35 #include "../Config.h"
36 #include "../utils/Platform.h"
39 #include <boost/log/attributes/attribute_set.hpp>
40 #include <boost/log/trivial.hpp>
42 #if TE_PLATFORM == TE_PLATFORMCODE_MSWINDOWS
43 #define CURRENT_FUNCTION std::string(__FUNCTION__)
45 #define CURRENT_FUNCTION std::string(__PRETTY_FUNCTION__)
119 void addLogger(
const std::string &name,
const std::string &filename, std::string format);
169 std::pair< boost::log::attribute_set::iterator, bool >
m_process;
170 std::pair< boost::log::attribute_set::iterator, bool >
m_processId;
171 std::pair< boost::log::attribute_set::iterator, bool >
m_threadId;
186 #ifdef TERRALIB_LOGGER_ENABLED
187 #define TE_ADD_LOGGER(name, filename, format) te::core::Logger::instance().addLogger(name, filename, format)
189 #define TE_ADD_LOGGER(name, filename, format) ((void)0)
202 #ifdef TERRALIB_LOGGER_ENABLED
203 #define TE_ADD_LOGGER_FROM_FILE(filename) te::core::Logger::instance().addLoggerFromFile(filename)
205 #define TE_ADD_LOGGER_FROM_FILE(filename) ((void)0)
215 #ifdef TERRALIB_LOGGER_ENABLED
216 #define TE_INIT_DEFAULT_LOGGER(filename) te::core::Logger::instance().addLogger(TERRALIB_DEFAULT_LOGGER, filename, TERRALIB_DEFAULT_LOGGER_FORMAT)
218 #define TE_INIT_DEFAULT_LOGGER(filename) ((void)0)
229 #ifdef TERRALIB_LOGGER_TRACE_ENABLED
230 #define TE_CORE_LOG_TRACE(channel, message) te::core::Logger::instance().log(message, channel ,te::core::Logger::severity_level::trace)
232 #define TE_CORE_LOG_TRACE(channel, message) ((void)0)
243 #ifdef TERRALIB_LOGGER_DEBUG_ENABLED
244 #define TE_CORE_LOG_DEBUG(channel, message) te::core::Logger::instance().log(message, channel ,te::core::Logger::severity_level::debug)
246 #define TE_CORE_LOG_DEBUG(channel, message) ((void)0)
257 #ifdef TERRALIB_LOGGER_INFO_ENABLED
258 #define TE_CORE_LOG_INFO(channel, message) te::core::Logger::instance().log(message, channel ,te::core::Logger::severity_level::info)
260 #define TE_CORE_LOG_INFO(channel, message) ((void)0)
271 #ifdef TERRALIB_LOGGER_WARN_ENABLED
272 #define TE_CORE_LOG_WARN(channel, message) te::core::Logger::instance().log(message, channel ,te::core::Logger::severity_level::warning)
274 #define TE_CORE_LOG_WARN(channel, message) ((void)0)
285 #ifdef TERRALIB_LOGGER_ERROR_ENABLED
286 #define TE_CORE_LOG_ERROR(channel, message) te::core::Logger::instance().log(message, channel ,te::core::Logger::severity_level::error)
288 #define TE_CORE_LOG_ERROR(channel, message) ((void)0)
299 #ifdef TERRALIB_LOGGER_FATAL_ENABLED
300 #define TE_CORE_LOG_FATAL(channel, message) te::core::Logger::instance().log(message, channel ,te::core::Logger::severity_level::fatal)
302 #define TE_CORE_LOG_FATAL(channel, message) ((void)0)
314 #define TE_LOG_TRACE(message) TE_CORE_LOG_TRACE(TERRALIB_DEFAULT_LOGGER, CURRENT_FUNCTION + " : " + message)
325 #define TE_LOG_DEBUG(message) TE_CORE_LOG_DEBUG(TERRALIB_DEFAULT_LOGGER, CURRENT_FUNCTION + " : " + message)
336 #define TE_LOG_INFO(message) TE_CORE_LOG_INFO(TERRALIB_DEFAULT_LOGGER, CURRENT_FUNCTION + " : " + message)
347 #define TE_LOG_WARN(message)TE_CORE_LOG_WARN(TERRALIB_DEFAULT_LOGGER, CURRENT_FUNCTION + " : " + message)
358 #define TE_LOG_ERROR(message) TE_CORE_LOG_ERROR(TERRALIB_DEFAULT_LOGGER, CURRENT_FUNCTION + " : " + message)
369 #define TE_LOG_FATAL(message) TE_CORE_LOG_FATAL(TERRALIB_DEFAULT_LOGGER, CURRENT_FUNCTION + " : " + message)
378 #ifdef TERRALIB_LOGGER_ENABLED
379 #define TE_SET_LOGGER_FILTER(severity) te::core::Logger::instance().setFilter(severity);
381 #define TE_SET_LOGGER_FILTER(severity) ((void)0)
const std::string TERRALIB_DEFAULT_LOGGER
The default name of the log file if none is informed.
const std::string TERRALIB_DEFAULT_LOGGER_FORMAT
The default message format if none is informed.
std::pair< boost::log::attribute_set::iterator, bool > m_threadId
~Logger()
Singleton destructor must be private or protected.
void addLogger(const std::string &name, const std::string &filename, std::string format)
It sets the logger using a default implementation.
static Logger & instance()
It returns a reference to the singleton instance.
void removeAllLoggers()
It removes all added loggers.
std::pair< boost::log::attribute_set::iterator, bool > m_processId
void setFilter(te::core::Logger::severity_level severity)
Sets the severity filter for the logger.
boost::log::trivial::severity_level toBoostSecurityLevel(te::core::Logger::severity_level severity)
Convert te::security_level to boost::security_level.
bool exists(const std::string &name)
Checks if exists a logger registered with the given name.
std::pair< boost::log::attribute_set::iterator, bool > m_process
void log(const std::string &message, const std::string &channel, severity_level severity)
It logs a given string message, channel and severity.
Logger()
Singleton constructor must be private or protected.
std::string getLoggingLevelName(te::core::Logger::severity_level severity)
Convert te::security_level to human readable name.
Logger & operator=(Logger const &)
Singleton copy assignment operator must be private or protected.
Logger(Logger const &)
Singleton copy constructor must be private or protected.
void addLoggerFromFile(const std::string &filename)
It sets the logger configuration from a given file.