32 #ifndef LSST_LOG_LOG_H 33 #define LSST_LOG_LOG_H 44 #include <log4cxx/logger.h> 45 #include <boost/format.hpp> 53 #define LOG_CONFIG(filename) lsst::log::Log::configure(filename) 67 #define LOG_CONFIG_PROP(string) lsst::log::Log::configure_prop(string) 74 #define LOG_DEFAULT_NAME() lsst::log::Log::getDefaultLoggerName() 83 #define LOG_GET(logger) lsst::log::Log::getLogger(logger) 100 #define LOG_PUSHCTX(name) lsst::log::Log::pushContext(name) 109 #define LOG_POPCTX() lsst::log::Log::popContext() 121 #define LOG_MDC(key, value) lsst::log::Log::MDC(key, value) 129 #define LOG_MDC_REMOVE(key) lsst::log::Log::MDCRemove(key) 151 #define LOG_MDC_INIT(func) lsst::log::Log::MDCRegisterInit(std::function<void()>(func)) 160 #define LOG_SET_LVL(logger, level) \ 161 lsst::log::Log::getLogger(logger).setLevel(level) 171 #define LOG_GET_LVL(logger) \ 172 lsst::log::Log::getLogger(logger).getLevel() 183 #define LOG_CHECK_LVL(logger, level) \ 184 lsst::log::Log::getLogger(logger).isEnabledFor(level) 192 #define LOG_CHECK_TRACE() \ 193 LOG4CXX_UNLIKELY(lsst::log::Log::getDefaultLogger().isTraceEnabled()) 201 #define LOG_CHECK_DEBUG() \ 202 LOG4CXX_UNLIKELY(lsst::log::Log::getDefaultLogger().isDebugEnabled()) 210 #define LOG_CHECK_INFO() \ 211 lsst::log::Log::getDefaultLogger().isInfoEnabled() 219 #define LOG_CHECK_WARN() \ 220 lsst::log::Log::getDefaultLogger().isWarnEnabled() 228 #define LOG_CHECK_ERROR() \ 229 lsst::log::Log::getDefaultLogger().isErrorEnabled() 237 #define LOG_CHECK_FATAL() \ 238 lsst::log::Log::getDefaultLogger().isFatalEnabled() 249 #define LOG(logger, level, message...) \ 251 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 252 if (log.isEnabledFor(level)) { \ 253 log.log(log4cxx::Level::toLevel(level), LOG4CXX_LOCATION, message); } \ 264 #define LOG_TRACE(message...) \ 266 lsst::log::Log log; \ 267 if (LOG4CXX_UNLIKELY(log.isTraceEnabled())) { \ 268 log.log(log4cxx::Level::getTrace(), LOG4CXX_LOCATION, message); } \ 279 #define LOG_DEBUG(message...) \ 281 lsst::log::Log log; \ 282 if (LOG4CXX_UNLIKELY(log.isDebugEnabled())) { \ 283 log.log(log4cxx::Level::getDebug(), LOG4CXX_LOCATION, message); } \ 294 #define LOG_INFO(message...) \ 296 lsst::log::Log log; \ 297 if (log.isInfoEnabled()) { \ 298 log.log(log4cxx::Level::getInfo(), LOG4CXX_LOCATION, message); } \ 309 #define LOG_WARN(message...) \ 311 lsst::log::Log log; \ 312 if (log.isWarnEnabled()) { \ 313 log.log(log4cxx::Level::getWarn(), LOG4CXX_LOCATION, message); } \ 324 #define LOG_ERROR(message...) \ 326 lsst::log::Log log; \ 327 if (log.isErrorEnabled()) { \ 328 log.log(log4cxx::Level::getError(), LOG4CXX_LOCATION, message); } \ 339 #define LOG_FATAL(message...) \ 341 lsst::log::Log log; \ 342 if (log.isFatalEnabled()) { \ 343 log.log(log4cxx::Level::getFatal(), LOG4CXX_LOCATION, message); } \ 348 #define LOG_MESSAGE_VIA_STREAM_(logger, level, message) \ 349 std::ostringstream stream_; \ 350 stream_ << message; \ 351 logger.logMsg(level, LOG4CXX_LOCATION, stream_.str()) 367 #define LOGS(logger, level, message) \ 369 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 370 if (log.isEnabledFor(level)) { \ 371 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::toLevel(level), message); \ 386 #define LOGS_TRACE(message) \ 388 lsst::log::Log log; \ 389 if (LOG4CXX_UNLIKELY(log.isTraceEnabled())) { \ 390 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getTrace(), message); \ 405 #define LOGS_DEBUG(message) \ 407 lsst::log::Log log; \ 408 if (LOG4CXX_UNLIKELY(log.isDebugEnabled())) { \ 409 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getDebug(), message); \ 424 #define LOGS_INFO(message) \ 426 lsst::log::Log log; \ 427 if (log.isInfoEnabled()) { \ 428 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getInfo(), message); \ 443 #define LOGS_WARN(message) \ 445 lsst::log::Log log; \ 446 if (log.isWarnEnabled()) { \ 447 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getWarn(), message); \ 462 #define LOGS_ERROR(message) \ 464 lsst::log::Log log; \ 465 if (log.isErrorEnabled()) { \ 466 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getError(), message); \ 481 #define LOGS_FATAL(message) \ 483 lsst::log::Log log; \ 484 if (log.isFatalEnabled()) { \ 485 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getFatal(), message); \ 497 #define LOGL_TRACE(logger, message...) \ 499 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 500 if (LOG4CXX_UNLIKELY(log.isTraceEnabled())) { \ 501 log.log(log4cxx::Level::getTrace(), LOG4CXX_LOCATION, message);\ 513 #define LOGL_DEBUG(logger, message...) \ 515 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 516 if (LOG4CXX_UNLIKELY(log.isDebugEnabled())) { \ 517 log.log(log4cxx::Level::getDebug(), LOG4CXX_LOCATION, message); \ 529 #define LOGL_INFO(logger, message...) \ 531 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 532 if (log.isInfoEnabled()) { \ 533 log.log(log4cxx::Level::getInfo(), LOG4CXX_LOCATION, message); \ 545 #define LOGL_WARN(logger, message...) \ 547 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 548 if (log.isWarnEnabled()) { \ 549 log.log(log4cxx::Level::getWarn(), LOG4CXX_LOCATION, message); \ 561 #define LOGL_ERROR(logger, message...) \ 563 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 564 if (log.isErrorEnabled()) { \ 565 log.log(log4cxx::Level::getError(), LOG4CXX_LOCATION, message); \ 577 #define LOGL_FATAL(logger, message...) \ 579 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 580 if (log.isFatalEnabled()) { \ 581 log.log(log4cxx::Level::getFatal(), LOG4CXX_LOCATION, message); \ 597 #define LOGLS_TRACE(logger, message) \ 599 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 600 if (LOG4CXX_UNLIKELY(log.isTraceEnabled())) { \ 601 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getTrace(), message); \ 617 #define LOGLS_DEBUG(logger, message) \ 619 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 620 if (LOG4CXX_UNLIKELY(log.isDebugEnabled())) { \ 621 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getDebug(), message); \ 637 #define LOGLS_INFO(logger, message) \ 639 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 640 if (log.isInfoEnabled()) { \ 641 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getInfo(), message); \ 657 #define LOGLS_WARN(logger, message) \ 659 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 660 if (log.isWarnEnabled()) { \ 661 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getWarn(), message); \ 677 #define LOGLS_ERROR(logger, message) \ 679 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 680 if (log.isErrorEnabled()) { \ 681 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getError(), message); \ 697 #define LOGLS_FATAL(logger, message) \ 699 lsst::log::Log log(lsst::log::Log::getLogger(logger)); \ 700 if (log.isFatalEnabled()) { \ 701 LOG_MESSAGE_VIA_STREAM_(log, log4cxx::Level::getFatal(), message); \ 705 #define LOG_LVL_TRACE static_cast<int>(log4cxx::Level::TRACE_INT) 706 #define LOG_LVL_DEBUG static_cast<int>(log4cxx::Level::DEBUG_INT) 707 #define LOG_LVL_INFO static_cast<int>(log4cxx::Level::INFO_INT) 708 #define LOG_LVL_WARN static_cast<int>(log4cxx::Level::WARN_INT) 709 #define LOG_LVL_ERROR static_cast<int>(log4cxx::Level::ERROR_INT) 710 #define LOG_LVL_FATAL static_cast<int>(log4cxx::Level::FATAL_INT) 712 #define LOG_LOGGER lsst::log::Log 713 #define LOG_CTX lsst::log::LogContext 732 Log() : _logger(_defaultLogger()) { }
769 static void configure(std::string
const& filename);
772 static Log getLogger(
Log const& logger) {
return logger; }
773 static Log getLogger(std::string
const& loggername);
777 static void MDC(std::string
const& key, std::string
const& value);
778 static void MDCRemove(std::string
const& key);
779 static int MDCRegisterInit(std::function<
void()>
function);
781 void log(log4cxx::LevelPtr level,
782 log4cxx::spi::LocationInfo
const& location,
783 char const* fmt, ...);
784 void logMsg(log4cxx::LevelPtr level,
785 log4cxx::spi::LocationInfo
const& location,
786 std::string
const& msg);
795 static log4cxx::LoggerPtr
const& _defaultLogger(log4cxx::LoggerPtr
const& newDefault=log4cxx::LoggerPtr());
802 Log(log4cxx::LoggerPtr
const& logger) :
Log() { _logger = logger; }
804 log4cxx::LoggerPtr _logger;
842 #endif // LSST_LOG_LOG_H static Log getDefaultLogger()
Return default logger instance, same as default constructor.
Definition: Log.h:765
bool isWarnEnabled() const
Definition: Log.h:757
bool isErrorEnabled() const
Definition: Log.h:741
static void configure()
Definition: Log.cc:173
static std::string getDefaultLoggerName()
Definition: Log.cc:231
void logMsg(log4cxx::LevelPtr level, log4cxx::spi::LocationInfo const &location, std::string const &msg)
Definition: Log.cc:394
void log(log4cxx::LevelPtr level, log4cxx::spi::LocationInfo const &location, char const *fmt,...)
Definition: Log.cc:380
bool isInfoEnabled() const
Definition: Log.h:749
unsigned lwpID()
Definition: Log.cc:419
LogContext(std::string const &name)
Definition: Log.h:817
static void MDC(std::string const &key, std::string const &value)
Definition: Log.cc:312
bool isDebugEnabled() const
Definition: Log.h:737
std::string getName() const
Definition: Log.cc:238
static void MDCRemove(std::string const &key)
Definition: Log.cc:324
int getLevel() const
Definition: Log.cc:354
void setLevel(int level)
Definition: Log.cc:347
bool isTraceEnabled() const
Definition: Log.h:753
bool isEnabledFor(int level) const
Definition: Log.cc:369
static void configure_prop(std::string const &properties)
Definition: Log.cc:213
bool isFatalEnabled() const
Definition: Log.h:745
static void popContext()
Definition: Log.cc:293
static void pushContext(std::string const &name)
Definition: Log.cc:266