libmoost
/home/mhx/git/github/libmoost/include/moost/logging/class_logger.hpp
Go to the documentation of this file.
00001 /* vim:set ts=3 sw=3 sts=3 et: */
00028 #ifndef MOOST_CLASS_LOGGER_HPP
00029 #define MOOST_CLASS_LOGGER_HPP
00030 
00031 #include <log4cxx/logger.h>
00032 #include "logger.hpp"
00033 #include "../utils/demangler.hpp"
00034 
00035 #include <typeinfo>
00036 
00043 #define MLOG_CLASS_MANGLED_NAME(thisptr) \
00044    typeid(*thisptr).name()
00045 
00052 #define MLOG_CLASS_DEMANGLED_NAME(thisptr) \
00053    DEMANGLE_NAME(MLOG_CLASS_MANGLED_NAME(thisptr))
00054 
00061 #define MLOG_CLASS_NAME() \
00062    MLOG_CLASS_DEMANGLED_NAME(this)
00063 
00073 #define MLOG_CLASS_MEMBER_LOGGER_NAME() \
00074    CLASS_LOGGER_60EB35B012964beaA884558022BC99E2___
00075 
00076 #define MLOG_CLASS_MEMBER_LOGGER() \
00077    MLOG_CLASS_MEMBER_LOGGER_NAME()()
00078 
00079 
00095 #define MLOG_DECLARE_NAMED_CLASS_MEMBER_LOGGER(name) \
00096    virtual log4cxx::LoggerPtr const & name () const \
00097    { \
00098       static log4cxx::LoggerPtr ptr = log4cxx::Logger::getLogger(MLOG_CLASS_DEMANGLED_NAME(this)); \
00099       return ptr; \
00100    } \
00101 
00102 
00113 #define MLOG_DECLARE_CLASS_MEMBER_LOGGER() \
00114    MLOG_DECLARE_NAMED_CLASS_MEMBER_LOGGER(MLOG_CLASS_MEMBER_LOGGER_NAME());
00115 
00152 #define MLOG_INIT_NAMED_CLASS_MEMBER_LOGGER(name) \
00153    name ()\
00154 
00155 
00164 #define MLOG_INIT_CLASS_MEMBER_LOGGER() \
00165    MLOG_INIT_NAMED_CLASS_MEMBER_LOGGER(MLOG_CLASS_MEMBER_LOGGER_NAME())
00166 
00173 #define MLOG_CLASS_MEMBER_LOGGER_TRACE(msg) MLOG_TRACE(MLOG_CLASS_MEMBER_LOGGER(), msg)
00174 #define MLOG_CLASS_MEMBER_LOGGER_DEBUG(msg) MLOG_DEBUG(MLOG_CLASS_MEMBER_LOGGER(), msg)
00175 #define MLOG_CLASS_MEMBER_LOGGER_INFO(msg)  MLOG_INFO(MLOG_CLASS_MEMBER_LOGGER(), msg)
00176 #define MLOG_CLASS_MEMBER_LOGGER_WARN(msg)  MLOG_WARN(MLOG_CLASS_MEMBER_LOGGER(), msg)
00177 #define MLOG_CLASS_MEMBER_LOGGER_ERROR(msg) MLOG_ERROR(MLOG_CLASS_MEMBER_LOGGER(), msg)
00178 #define MLOG_CLASS_MEMBER_LOGGER_FATAL(msg) MLOG_FATAL(MLOG_CLASS_MEMBER_LOGGER(), msg)
00179 
00186 #define MLOG_CLASS_MEMBER_LOGGER_TRACE(msg) MLOG_TRACE(MLOG_CLASS_MEMBER_LOGGER(), msg)
00187 #define MLOG_CLASS_MEMBER_LOGGER_DEBUG(msg) MLOG_DEBUG(MLOG_CLASS_MEMBER_LOGGER(), msg)
00188 #define MLOG_CLASS_MEMBER_LOGGER_INFO(msg)  MLOG_INFO(MLOG_CLASS_MEMBER_LOGGER(), msg)
00189 #define MLOG_CLASS_MEMBER_LOGGER_WARN(msg)  MLOG_WARN(MLOG_CLASS_MEMBER_LOGGER(), msg)
00190 #define MLOG_CLASS_MEMBER_LOGGER_ERROR(msg) MLOG_ERROR(MLOG_CLASS_MEMBER_LOGGER(), msg)
00191 #define MLOG_CLASS_MEMBER_LOGGER_FATAL(msg) MLOG_FATAL(MLOG_CLASS_MEMBER_LOGGER(), msg)
00192 
00208 #define MLOG_CLASS_LOGGER() \
00209    log4cxx::Logger::getLogger( MLOG_CLASS_NAME() )
00210 
00229 #define MLOG_CLASS_DEFINE(logger) \
00230    log4cxx::LoggerPtr logger = MLOG_CLASS_LOGGER()
00231 
00251 #define MLOG_CLASS(level, msg) \
00252    MLOG(level, MLOG_CLASS_LOGGER(), msg)
00253 
00261 #define MLOG_CLASS_TRACE(msg) MLOG_CLASS(MLOG_LEVEL_TRACE, msg)
00262 #define MLOG_CLASS_DEBUG(msg) MLOG_CLASS(MLOG_LEVEL_DEBUG, msg)
00263 #define MLOG_CLASS_INFO(msg)  MLOG_CLASS(MLOG_LEVEL_INFO, msg)
00264 #define MLOG_CLASS_WARN(msg)  MLOG_CLASS(MLOG_LEVEL_WARN, msg)
00265 #define MLOG_CLASS_ERROR(msg) MLOG_CLASS(MLOG_LEVEL_ERROR, msg)
00266 #define MLOG_CLASS_FATAL(msg) MLOG_CLASS(MLOG_LEVEL_FATAL, msg)
00267 
00286 #define MLOG_CLASS_ASSERT(cond, msg) \
00287    MLOG_ASSERT(cond, MLOG_CLASS_LOGGER(), msg)
00288 
00297 #define MLOG_CLASS_MEMBER_LOGGER_ASSERT(cond, msg) \
00298    MLOG_ASSERT(cond, MLOG_CLASS_MEMBER_LOGGER(), msg)
00299 
00321 #define MLOG_CLASS_TEST(level, cond, msg) \
00322    MLOG_TEST(level, cond, MLOG_CLASS_LOGGER(), msg);
00323 
00332 #define MLOG_CLASS_MEMBER_LOGGER_TEST(level, cond, msg) \
00333    MLOG_TEST(level, cond, MLOG_CLASS_MEMBER_LOGGER(), msg);
00334 
00342 #define MLOG_CLASS_TEST_TRACE(cond, msg) MLOG_CLASS_TEST(MLOG_LEVEL_TRACE, cond, msg)
00343 #define MLOG_CLASS_TEST_DEBUG(cond, msg) MLOG_CLASS_TEST(MLOG_LEVEL_DEBUG, cond, msg)
00344 #define MLOG_CLASS_TEST_INFO(cond, msg)  MLOG_CLASS_TEST(MLOG_LEVEL_INFO, cond, msg)
00345 #define MLOG_CLASS_TEST_WARN(cond, msg)  MLOG_CLASS_TEST(MLOG_LEVEL_WARN, cond, msg)
00346 #define MLOG_CLASS_TEST_ERROR(cond, msg) MLOG_CLASS_TEST(MLOG_LEVEL_ERROR, cond, msg)
00347 #define MLOG_CLASS_TEST_FATAL(cond, msg) MLOG_CLASS_TEST(MLOG_LEVEL_FATAL, cond, msg)
00348 
00356 #define MLOG_CLASS_MEMBER_LOGGER_TEST_TRACE(cond, msg) MLOG_CLASS_MEMBER_LOGGER_TEST(MLOG_LEVEL_TRACE, cond, msg)
00357 #define MLOG_CLASS_MEMBER_LOGGER_TEST_DEBUG(cond, msg) MLOG_CLASS_MEMBER_LOGGER_TEST(MLOG_LEVEL_DEBUG, cond, msg)
00358 #define MLOG_CLASS_MEMBER_LOGGER_TEST_INFO(cond, msg)  MLOG_CLASS_MEMBER_LOGGER_TEST(MLOG_LEVEL_INFO, cond, msg)
00359 #define MLOG_CLASS_MEMBER_LOGGER_TEST_WARN(cond, msg)  MLOG_CLASS_MEMBER_LOGGER_TEST(MLOG_LEVEL_WARN, cond, msg)
00360 #define MLOG_CLASS_MEMBER_LOGGER_TEST_ERROR(cond, msg) MLOG_CLASS_MEMBER_LOGGER_TEST(MLOG_LEVEL_ERROR, cond, msg)
00361 #define MLOG_CLASS_MEMBER_LOGGER_TEST_FATAL(cond, msg) MLOG_CLASS_MEMBER_LOGGER_TEST(MLOG_LEVEL_FATAL, cond, msg)
00362 
00382 #define MLOG_CLASS_CHECK(cond,  msg) \
00383    MLOG_CLASS_TEST_ERROR(cond, msg)
00384 
00393 #define MLOG_CLASS_MEMBER_LOGGER_CHECK(cond,  msg) \
00394    MLOG_CLASS_MEMBER_LOGGER_TEST_ERROR(cond, msg)
00395 
00415 #define MLOG_CLASS_THROW(cond,  msg)\
00416    MLOG_THROW(cond, MLOG_CLASS_LOGGER(), msg)
00417 
00426 #define MLOG_CLASS_MEMBER_LOGGER_THROW(cond,  msg)\
00427    MLOG_THROW(cond, MLOG_CLASS_MEMBER_LOGGER(), msg)
00428 
00443 #define MLOG_CLASS_THROW_IF(cond,  msg)\
00444    MLOG_THROW_IF(cond, MLOG_CLASS_LOGGER(), msg)
00445 
00452 #define MLOG_CLASS_MEMBER_LOGGER_THROW_IF(cond,  msg)\
00453    MLOG_THROW_IF(cond, MLOG_CLASS_MEMBER_LOGGER(), msg)
00454 
00475 #define MLOG_CLASS_VERIFY(cond,  msg)\
00476    MLOG_VERIFY(cond, MLOG_CLASS_LOGGER(), msg)
00477 
00486 #define MLOG_CLASS_MEMBER_LOGGER_VERIFY(cond,  msg)\
00487    MLOG_VERIFY(cond, MLOG_CLASS_MEMBER_LOGGER(), msg)
00488 
00498 #define MLOG_CLASS_SET_LEVEL(level) \
00499     MLOG_SET_LEVEL(level, MLOG_CLASS_LOGGER());
00500 
00509 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(level) \
00510    MLOG_SET_LEVEL(level, MLOG_CLASS_MEMBER_LOGGER());
00511 
00519 #define MLOG_CLASS_SET_LEVEL_ALL() MLOG_CLASS_SET_LEVEL(MLOG_GET_LEVEL_ALL)
00520 #define MLOG_CLASS_SET_LEVEL_OFF() MLOG_CLASS_SET_LEVEL(MLOG_GET_LEVEL_OFF)
00521 #define MLOG_CLASS_SET_LEVEL_TRACE() MLOG_CLASS_SET_LEVEL(MLOG_GET_LEVEL_TRACE)
00522 #define MLOG_CLASS_SET_LEVEL_DEBUG() MLOG_CLASS_SET_LEVEL(MLOG_GET_LEVEL_DEBUG)
00523 #define MLOG_CLASS_SET_LEVEL_INFO() MLOG_CLASS_SET_LEVEL(MLOG_GET_LEVEL_INFO)
00524 #define MLOG_CLASS_SET_LEVEL_WARN() MLOG_CLASS_SET_LEVEL(MLOG_GET_LEVEL_WARN)
00525 #define MLOG_CLASS_SET_LEVEL_ERROR() MLOG_CLASS_SET_LEVEL(MLOG_GET_LEVEL_ERROR)
00526 #define MLOG_CLASS_SET_LEVEL_FATAL() MLOG_CLASS_SET_LEVEL(MLOG_GET_LEVEL_FATAL)
00527 
00535 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL_ALL() MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(MLOG_GET_LEVEL_ALL)
00536 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL_OFF() MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(MLOG_GET_LEVEL_OFF)
00537 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL_TRACE() MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(MLOG_GET_LEVEL_TRACE)
00538 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL_DEBUG() MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(MLOG_GET_LEVEL_DEBUG)
00539 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL_INFO() MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(MLOG_GET_LEVEL_INFO)
00540 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL_WARN() MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(MLOG_GET_LEVEL_WARN)
00541 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL_ERROR() MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(MLOG_GET_LEVEL_ERROR)
00542 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL_FATAL() MLOG_CLASS_MEMBER_LOGGER_SET_LEVEL(MLOG_GET_LEVEL_FATAL)
00543 
00553 #define MLOG_CLASS_SET_LEVELSTR(levelstr) \
00554    MLOG_SET_LEVEL(str2level(levelstr), MLOG_CLASS_LOGGER());
00555 
00564 #define MLOG_CLASS_MEMBER_LOGGER_SET_LEVELSTR(levelstr) \
00565    MLOG_SET_LEVEL(str2level(levelstr), MLOG_CLASS_MEMBER_LOGGER_LOGGER());
00566 
00567 #endif