Apache Log4cxx Version 1.2.0
Loading...
Searching...
No Matches
log4cxx/logger.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _LOG4CXX_LOGGER_H
19#define _LOG4CXX_LOGGER_H
20
22#include <log4cxx/level.h>
27
28namespace log4cxx
29{
30
31namespace spi
32{
33class LoggerRepository;
35class LoggerFactory;
37}
38
39class Logger;
43
44
49class LOG4CXX_EXPORT Logger :
51{
52 public:
58
59 private:
60 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(LoggerPrivate, m_priv)
61 int m_threshold;
62
63 public:
73 Logger(helpers::Pool& pool, const LogString& name);
74
76
77
85 void addAppender(const AppenderPtr newAppender) override;
86
87
101
107
121 void debug(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
136 void debug(const std::string& msg) const;
137#if LOG4CXX_WCHAR_T_API
153 void debug(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
168 void debug(const std::wstring& msg) const;
169#endif
170#if LOG4CXX_UNICHAR_API
186 void debug(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
201 void debug(const std::basic_string<UniChar>& msg) const;
202#endif
203#if LOG4CXX_CFSTRING_API
219 void debug(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
234 void debug(const CFStringRef& msg) const;
235#endif
236
252 void error(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
267 void error(const std::string& msg) const;
268#if LOG4CXX_WCHAR_T_API
283 void error(const std::wstring& msg) const;
299 void error(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
300#endif
301#if LOG4CXX_UNICHAR_API
317 void error(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
332 void error(const std::basic_string<UniChar>& msg) const;
333#endif
334#if LOG4CXX_CFSTRING_API
350 void error(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
365 void error(const CFStringRef& msg) const;
366#endif
367
383 void fatal(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
398 void fatal(const std::string& msg) const;
399#if LOG4CXX_WCHAR_T_API
415 void fatal(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
430 void fatal(const std::wstring& msg) const;
431#endif
432#if LOG4CXX_UNICHAR_API
448 void fatal(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
463 void fatal(const std::basic_string<UniChar>& msg) const;
464#endif
465#if LOG4CXX_CFSTRING_API
481 void fatal(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
496 void fatal(const CFStringRef& msg) const;
497#endif
498
506 void addEvent(const LevelPtr& level, std::string&& message
507 , const spi::LocationInfo& location = spi::LocationInfo::getLocationUnavailable()) const;
508
516 void forcedLog(const LevelPtr& level, const std::string& message,
517 const log4cxx::spi::LocationInfo& location) const;
524 void forcedLog(const LevelPtr& level, const std::string& message) const;
525
526#if LOG4CXX_WCHAR_T_API
534 void addEvent(const LevelPtr& level, std::wstring&& message
535 , const spi::LocationInfo& location = spi::LocationInfo::getLocationUnavailable()) const;
536
544 void forcedLog(const LevelPtr& level, const std::wstring& message,
545 const log4cxx::spi::LocationInfo& location) const;
552 void forcedLog(const LevelPtr& level, const std::wstring& message) const;
553#endif
554#if LOG4CXX_UNICHAR_API
562 void addEvent(const LevelPtr& level, std::basic_string<UniChar>&& message,
563 const spi::LocationInfo& location = spi::LocationInfo::getLocationUnavailable()) const;
571 void forcedLog(const LevelPtr& level, const std::basic_string<UniChar>& message,
572 const log4cxx::spi::LocationInfo& location) const;
579 void forcedLog(const LevelPtr& level, const std::basic_string<UniChar>& message) const;
580#endif
581#if LOG4CXX_CFSTRING_API
589 void forcedLog(const LevelPtr& level, const CFStringRef& message,
590 const log4cxx::spi::LocationInfo& location) const;
597 void forcedLog(const LevelPtr& level, const CFStringRef& message) const;
598#endif
606 void addEventLS(const LevelPtr& level, LogString&& message
607 , const spi::LocationInfo& location = spi::LocationInfo::getLocationUnavailable()) const;
608
616 void forcedLogLS(const LevelPtr& level, const LogString& message,
617 const log4cxx::spi::LocationInfo& location) const;
618
622 bool getAdditivity() const;
623
629 AppenderList getAllAppenders() const override;
630
635 AppenderPtr getAppender(const LogString& name) const override;
636
646 virtual const LevelPtr& getEffectiveLevel() const;
647
653
654
659 const LogString& getName() const;
660
665 void getName(std::string& name) const;
666#if LOG4CXX_WCHAR_T_API
671 void getName(std::wstring& name) const;
672#endif
673#if LOG4CXX_UNICHAR_API
678 void getName(std::basic_string<UniChar>& name) const;
679#endif
680#if LOG4CXX_CFSTRING_API
685 void getName(CFStringRef& name) const;
686#endif
687
695
696
702 const LevelPtr& getLevel() const;
703
708 static LoggerPtr getLogger(const std::string& name);
713 static LoggerPtr getLogger(const char* const name);
714#if LOG4CXX_WCHAR_T_API
719 static LoggerPtr getLogger(const std::wstring& name);
724 static LoggerPtr getLogger(const wchar_t* const name);
725#endif
726#if LOG4CXX_UNICHAR_API
731 static LoggerPtr getLogger(const std::basic_string<UniChar>& name);
732#endif
733#if LOG4CXX_CFSTRING_API
738 static LoggerPtr getLogger(const CFStringRef& name);
739#endif
744 static LoggerPtr getLoggerLS(const LogString& name);
745
750
764 static LoggerPtr getLoggerLS(const LogString& name,
765 const log4cxx::spi::LoggerFactoryPtr& factory);
779 static LoggerPtr getLogger(const std::string& name,
780 const log4cxx::spi::LoggerFactoryPtr& factory);
781#if LOG4CXX_WCHAR_T_API
795 static LoggerPtr getLogger(const std::wstring& name,
796 const log4cxx::spi::LoggerFactoryPtr& factory);
797#endif
798#if LOG4CXX_UNICHAR_API
812 static LoggerPtr getLogger(const std::basic_string<UniChar>& name,
813 const log4cxx::spi::LoggerFactoryPtr& factory);
814#endif
815#if LOG4CXX_CFSTRING_API
829 static LoggerPtr getLogger(const CFStringRef& name,
830 const log4cxx::spi::LoggerFactoryPtr& factory);
831#endif
832
842 helpers::ResourceBundlePtr getResourceBundle() const;
843
844 protected:
855
856 public:
872 void info(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
887 void info(const std::string& msg) const;
888#if LOG4CXX_WCHAR_T_API
904 void info(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
919 void info(const std::wstring& msg) const;
920#endif
921#if LOG4CXX_UNICHAR_API
935 void info(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
950 void info(const std::basic_string<UniChar>& msg) const;
951#endif
952#if LOG4CXX_CFSTRING_API
968 void info(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
983 void info(const CFStringRef& msg) const;
984#endif
985
989 bool isAttached(const AppenderPtr appender) const override;
990
1025 bool isDebugEnabled() const;
1026
1048 inline static bool isDebugEnabledFor(const LoggerPtr& logger)
1049 {
1050 return logger && logger->m_threshold <= Level::DEBUG_INT && logger->isDebugEnabled();
1051 }
1052
1058 bool isEnabledFor(const LevelPtr& level) const;
1059
1060
1070 bool isInfoEnabled() const;
1071
1082 inline static bool isInfoEnabledFor(const LoggerPtr& logger)
1083 {
1084 return logger && logger->m_threshold <= Level::INFO_INT && logger->isInfoEnabled();
1085 }
1086
1096 bool isWarnEnabled() const;
1097
1108 inline static bool isWarnEnabledFor(const LoggerPtr& logger)
1109 {
1110 return logger && logger->m_threshold <= Level::WARN_INT && logger->isWarnEnabled();
1111 }
1112
1122 bool isErrorEnabled() const;
1123
1134 inline static bool isErrorEnabledFor(const LoggerPtr& logger)
1135 {
1136 return logger && logger->m_threshold <= Level::ERROR_INT && logger->isErrorEnabled();
1137 }
1138
1148 bool isFatalEnabled() const;
1149
1160 inline static bool isFatalEnabledFor(const LoggerPtr& logger)
1161 {
1162 return logger && logger->m_threshold <= Level::FATAL_INT && logger->isFatalEnabled();
1163 }
1164
1174 bool isTraceEnabled() const;
1175
1186 inline static bool isTraceEnabledFor(const LoggerPtr& logger)
1187 {
1188 return logger && logger->m_threshold <= Level::TRACE_INT && logger->isTraceEnabled();
1189 }
1190
1209 void l7dlog(const LevelPtr& level, const LogString& key,
1210 const log4cxx::spi::LocationInfo& locationInfo,
1211 const std::vector<LogString>& values) const;
1227 void l7dlog(const LevelPtr& level, const std::string& key,
1228 const log4cxx::spi::LocationInfo& locationInfo) const;
1246 void l7dlog(const LevelPtr& level, const std::string& key,
1247 const log4cxx::spi::LocationInfo& locationInfo,
1248 const std::string& val) const;
1267 void l7dlog(const LevelPtr& level, const std::string& key,
1268 const log4cxx::spi::LocationInfo& locationInfo,
1269 const std::string& val1, const std::string& val2) const;
1289 void l7dlog(const LevelPtr& level, const std::string& key,
1290 const log4cxx::spi::LocationInfo& locationInfo,
1291 const std::string& val1, const std::string& val2, const std::string& val3) const;
1292
1293#if LOG4CXX_WCHAR_T_API
1309 void l7dlog(const LevelPtr& level, const std::wstring& key,
1310 const log4cxx::spi::LocationInfo& locationInfo) const;
1328 void l7dlog(const LevelPtr& level, const std::wstring& key,
1329 const log4cxx::spi::LocationInfo& locationInfo,
1330 const std::wstring& val) const;
1349 void l7dlog(const LevelPtr& level, const std::wstring& key,
1350 const log4cxx::spi::LocationInfo& locationInfo,
1351 const std::wstring& val1, const std::wstring& val2) const;
1371 void l7dlog(const LevelPtr& level, const std::wstring& key,
1372 const log4cxx::spi::LocationInfo& locationInfo,
1373 const std::wstring& val1, const std::wstring& val2, const std::wstring& val3) const;
1374#endif
1375#if LOG4CXX_UNICHAR_API
1391 void l7dlog(const LevelPtr& level, const std::basic_string<UniChar>& key,
1392 const log4cxx::spi::LocationInfo& locationInfo) const;
1410 void l7dlog(const LevelPtr& level, const std::basic_string<UniChar>& key,
1411 const log4cxx::spi::LocationInfo& locationInfo,
1412 const std::basic_string<UniChar>& val) const;
1431 void l7dlog(const LevelPtr& level, const std::basic_string<UniChar>& key,
1432 const log4cxx::spi::LocationInfo& locationInfo,
1433 const std::basic_string<UniChar>& val1, const std::basic_string<UniChar>& val2) const;
1453 void l7dlog(const LevelPtr& level, const std::basic_string<UniChar>& key,
1454 const log4cxx::spi::LocationInfo& locationInfo,
1455 const std::basic_string<UniChar>& val1, const std::basic_string<UniChar>& val2,
1456 const std::basic_string<UniChar>& val3) const;
1457#endif
1458#if LOG4CXX_CFSTRING_API
1474 void l7dlog(const LevelPtr& level, const CFStringRef& key,
1475 const log4cxx::spi::LocationInfo& locationInfo) const;
1493 void l7dlog(const LevelPtr& level, const CFStringRef& key,
1494 const log4cxx::spi::LocationInfo& locationInfo,
1495 const CFStringRef& val1) const;
1514 void l7dlog(const LevelPtr& level, const CFStringRef& key,
1515 const log4cxx::spi::LocationInfo& locationInfo,
1516 const CFStringRef& val1, const CFStringRef& val2) const;
1536 void l7dlog(const LevelPtr& level, const CFStringRef& key,
1537 const log4cxx::spi::LocationInfo& locationInfo,
1538 const CFStringRef& val1, const CFStringRef& val2,
1539 const CFStringRef& val3) const;
1540#endif
1541
1550 void log(const LevelPtr& level, const std::string& message,
1551 const log4cxx::spi::LocationInfo& location) const;
1560 void log(const LevelPtr& level, const std::string& message) const;
1561#if LOG4CXX_WCHAR_T_API
1570 void log(const LevelPtr& level, const std::wstring& message,
1571 const log4cxx::spi::LocationInfo& location) const;
1580 void log(const LevelPtr& level, const std::wstring& message) const;
1581#endif
1582#if LOG4CXX_UNICHAR_API
1591 void log(const LevelPtr& level, const std::basic_string<UniChar>& message,
1592 const log4cxx::spi::LocationInfo& location) const;
1601 void log(const LevelPtr& level, const std::basic_string<UniChar>& message) const;
1602#endif
1603#if LOG4CXX_CFSTRING_API
1612 void log(const LevelPtr& level, const CFStringRef& message,
1613 const log4cxx::spi::LocationInfo& location) const;
1622 void log(const LevelPtr& level, const CFStringRef& message) const;
1623#endif
1632 void logLS(const LevelPtr& level, const LogString& message,
1633 const log4cxx::spi::LocationInfo& location) const;
1634
1635
1636
1642 void removeAllAppenders() override;
1643
1647 void removeAppender(const AppenderPtr appender) override;
1648
1653 void removeAppender(const LogString& name) override;
1654
1658 void setAdditivity(bool additive);
1659
1660 protected:
1661 friend class Hierarchy;
1673 void setParent(LoggerPtr parentLogger);
1678
1679 private:
1680 spi::LoggerRepository* getHierarchy() const;
1681
1682 public:
1689 virtual void setLevel(const LevelPtr level);
1690
1694 void setResourceBundle(const helpers::ResourceBundlePtr& bundle);
1695
1696#if LOG4CXX_WCHAR_T_API
1712 void warn(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
1727 void warn(const std::wstring& msg) const;
1728#endif
1729#if LOG4CXX_UNICHAR_API
1745 void warn(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
1760 void warn(const std::basic_string<UniChar>& msg) const;
1761#endif
1762#if LOG4CXX_CFSTRING_API
1778 void warn(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
1793 void warn(const CFStringRef& msg) const;
1794#endif
1810 void warn(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
1825 void warn(const std::string& msg) const;
1826
1827#if LOG4CXX_WCHAR_T_API
1843 void trace(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
1858 void trace(const std::wstring& msg) const;
1859#endif
1860#if LOG4CXX_UNICHAR_API
1876 void trace(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
1891 void trace(const std::basic_string<UniChar>& msg) const;
1892#endif
1893#if LOG4CXX_CFSTRING_API
1909 void trace(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
1924 void trace(const CFStringRef& msg) const;
1925#endif
1941 void trace(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
1956 void trace(const std::string& msg) const;
1957
1964 void reconfigure( const std::vector<AppenderPtr>& appenders, bool additivity );
1965
1966 private:
1967 //
1968 // prevent copy and assignment
1969 Logger(const Logger&);
1970 Logger& operator=(const Logger&);
1971};
1973}
1974
1979#if !defined(LOG4CXX_UNLIKELY)
1980 #if __GNUC__ >= 3
1987 #define LOG4CXX_UNLIKELY(expr) __builtin_expect(expr, 0)
1988 #else
1995 #define LOG4CXX_UNLIKELY(expr) expr
1996 #endif
1997#endif
1998
1999#if defined(LOG4CXX_ENABLE_STACKTRACE) && !defined(LOG4CXX_STACKTRACE)
2000 #ifndef __has_include
2001 #include <boost/stacktrace.hpp>
2002 #define LOG4CXX_STACKTRACE ::log4cxx::MDC mdc_("stacktrace", LOG4CXX_EOL + boost::stacktrace::to_string(boost::stacktrace::stacktrace()));
2003 #elif __has_include(<stacktrace>)
2004 #include <stacktrace>
2005 #define LOG4CXX_STACKTRACE ::log4cxx::MDC mdc_("stacktrace", LOG4CXX_EOL + std::stacktrace::to_string(std::stacktrace::stacktrace()));
2006 #elif __has_include(<boost/stacktrace.hpp>)
2007 #include <boost/stacktrace.hpp>
2008 #define LOG4CXX_STACKTRACE ::log4cxx::MDC mdc_("stacktrace", LOG4CXX_EOL + boost::stacktrace::to_string(boost::stacktrace::stacktrace()));
2009 #else
2010 #warning "Stacktrace requested but no implementation found"
2011 #endif
2012#endif /* LOG4CXX_ENABLE_STACKTRACE */
2013
2014#if !defined(LOG4CXX_STACKTRACE)
2015#define LOG4CXX_STACKTRACE
2016#endif
2017
2018
2026#define LOG4CXX_LOG(logger, level, message) do { \
2027 if (logger->isEnabledFor(level)) {\
2028 ::log4cxx::helpers::MessageBuffer oss_; \
2029 logger->addEvent(level, oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2030
2038#define LOG4CXX_LOG_FMT(logger, level, ...) do { \
2039 if (logger->isEnabledFor(level)) {\
2040 logger->addEvent(level, fmt::format( __VA_ARGS__ ), LOG4CXX_LOCATION); }} while (0)
2041
2049#define LOG4CXX_LOGLS(logger, level, message) do { \
2050 if (logger->isEnabledFor(level)) {\
2051 ::log4cxx::helpers::LogCharMessageBuffer oss_; \
2052 logger->addEvent(level, oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2053
2054#if !defined(LOG4CXX_THRESHOLD) || LOG4CXX_THRESHOLD <= 10000
2073#define LOG4CXX_DEBUG(logger, message) do { \
2074 if (LOG4CXX_UNLIKELY(::log4cxx::Logger::isDebugEnabledFor(logger))) {\
2075 ::log4cxx::helpers::MessageBuffer oss_; \
2076 logger->addEvent(::log4cxx::Level::getDebug(), oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2077
2084#define LOG4CXX_DEBUG_FMT(logger, ...) do { \
2085 if (LOG4CXX_UNLIKELY(::log4cxx::Logger::isDebugEnabledFor(logger))) {\
2086 logger->addEvent(::log4cxx::Level::getDebug(), fmt::format( __VA_ARGS__ ), LOG4CXX_LOCATION); }} while (0)
2087#else
2088#define LOG4CXX_DEBUG(logger, message)
2089#define LOG4CXX_DEBUG_FMT(logger, ...)
2090#endif
2091
2092#if !defined(LOG4CXX_THRESHOLD) || LOG4CXX_THRESHOLD <= 5000
2105#define LOG4CXX_TRACE(logger, message) do { \
2106 if (LOG4CXX_UNLIKELY(::log4cxx::Logger::isTraceEnabledFor(logger))) {\
2107 ::log4cxx::helpers::MessageBuffer oss_; \
2108 logger->addEvent(::log4cxx::Level::getTrace(), oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2109
2116#define LOG4CXX_TRACE_FMT(logger, ...) do { \
2117 if (LOG4CXX_UNLIKELY(::log4cxx::Logger::isTraceEnabledFor(logger))) {\
2118 logger->addEvent(::log4cxx::Level::getTrace(), fmt::format( __VA_ARGS__ ), LOG4CXX_LOCATION); }} while (0)
2119#else
2120#define LOG4CXX_TRACE(logger, message)
2121#define LOG4CXX_TRACE_FMT(logger, ...)
2122#endif
2123
2124#if !defined(LOG4CXX_THRESHOLD) || LOG4CXX_THRESHOLD <= 20000
2141#define LOG4CXX_INFO(logger, message) do { \
2142 if (::log4cxx::Logger::isInfoEnabledFor(logger)) {\
2143 ::log4cxx::helpers::MessageBuffer oss_; \
2144 logger->addEvent(::log4cxx::Level::getInfo(), oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2145
2152#define LOG4CXX_INFO_FMT(logger, ...) do { \
2153 if (::log4cxx::Logger::isInfoEnabledFor(logger)) {\
2154 logger->addEvent(::log4cxx::Level::getInfo(), fmt::format( __VA_ARGS__ ), LOG4CXX_LOCATION); }} while (0)
2155#else
2156#define LOG4CXX_INFO(logger, message)
2157#define LOG4CXX_INFO_FMT(logger, ...)
2158#endif
2159
2160#if !defined(LOG4CXX_THRESHOLD) || LOG4CXX_THRESHOLD <= 30000
2175#define LOG4CXX_WARN(logger, message) do { \
2176 if (::log4cxx::Logger::isWarnEnabledFor(logger)) {\
2177 ::log4cxx::helpers::MessageBuffer oss_; \
2178 logger->addEvent(::log4cxx::Level::getWarn(), oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2179
2186#define LOG4CXX_WARN_FMT(logger, ...) do { \
2187 if (::log4cxx::Logger::isWarnEnabledFor(logger)) {\
2188 logger->addEvent(::log4cxx::Level::getWarn(), fmt::format( __VA_ARGS__ ), LOG4CXX_LOCATION); }} while (0)
2189#else
2190#define LOG4CXX_WARN(logger, message)
2191#define LOG4CXX_WARN_FMT(logger, ...)
2192#endif
2193
2194#if !defined(LOG4CXX_THRESHOLD) || LOG4CXX_THRESHOLD <= 40000
2209#define LOG4CXX_ERROR(logger, message) do { \
2210 if (::log4cxx::Logger::isErrorEnabledFor(logger)) {\
2211 ::log4cxx::helpers::MessageBuffer oss_; \
2212 logger->addEvent(::log4cxx::Level::getError(), oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2213
2220#define LOG4CXX_ERROR_FMT(logger, ...) do { \
2221 if (::log4cxx::Logger::isErrorEnabledFor(logger)) {\
2222 logger->addEvent(::log4cxx::Level::getError(), fmt::format( __VA_ARGS__ ), LOG4CXX_LOCATION); }} while (0)
2223
2231#define LOG4CXX_ASSERT(logger, condition, message) do { \
2232 if (!(condition) && ::log4cxx::Logger::isErrorEnabledFor(logger)) {\
2233 ::log4cxx::helpers::MessageBuffer oss_; \
2234 LOG4CXX_STACKTRACE \
2235 logger->addEvent(::log4cxx::Level::getError(), oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2236
2244#define LOG4CXX_ASSERT_FMT(logger, condition, ...) do { \
2245 if (!(condition) && ::log4cxx::Logger::isErrorEnabledFor(logger)) {\
2246 LOG4CXX_STACKTRACE \
2247 logger->addEvent(::log4cxx::Level::getError(), fmt::format( __VA_ARGS__ ), LOG4CXX_LOCATION); }} while (0)
2248
2249#else
2250#define LOG4CXX_ERROR(logger, message)
2251#define LOG4CXX_ERROR_FMT(logger, ...)
2252#define LOG4CXX_ASSERT(logger, condition, message)
2253#define LOG4CXX_ASSERT_FMT(logger, condition, ...)
2254#endif
2255
2256#if !defined(LOG4CXX_THRESHOLD) || LOG4CXX_THRESHOLD <= 50000
2268#define LOG4CXX_FATAL(logger, message) do { \
2269 if (::log4cxx::Logger::isFatalEnabledFor(logger)) {\
2270 ::log4cxx::helpers::MessageBuffer oss_; \
2271 logger->addEvent(::log4cxx::Level::getFatal(), oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
2272
2279#define LOG4CXX_FATAL_FMT(logger, ...) do { \
2280 if (::log4cxx::Logger::isFatalEnabledFor(logger)) {\
2281 logger->addEvent(::log4cxx::Level::getFatal(), fmt::format( __VA_ARGS__ ), LOG4CXX_LOCATION); }} while (0)
2282#else
2283#define LOG4CXX_FATAL(logger, message)
2284#define LOG4CXX_FATAL_FMT(logger, ...)
2285#endif
2286
2294#define LOG4CXX_L7DLOG(logger, level, key) do { \
2295 if (logger->isEnabledFor(level)) {\
2296 logger->l7dlog(level, key, LOG4CXX_LOCATION); }} while (0)
2297
2306#define LOG4CXX_L7DLOG1(logger, level, key, p1) do { \
2307 if (logger->isEnabledFor(level)) {\
2308 logger->l7dlog(level, key, LOG4CXX_LOCATION, p1); }} while (0)
2309
2319#define LOG4CXX_L7DLOG2(logger, level, key, p1, p2) do { \
2320 if (logger->isEnabledFor(level)) {\
2321 logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2); }} while (0)
2322
2333#define LOG4CXX_L7DLOG3(logger, level, key, p1, p2, p3) do { \
2334 if (logger->isEnabledFor(level)) {\
2335 logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2, p3); }} while (0)
2336
2340
2341#endif //_LOG4CXX_LOGGER_H
This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy.
Definition: hierarchy.h:56
This is the central class in the log4cxx package.
Definition: log4cxx/logger.h:51
void log(const LevelPtr &level, const std::wstring &message) const
Add a new logging event containing message to the appenders attached to this logger if this logger is...
static LoggerPtr getLogger(const std::basic_string< UniChar > &name)
Retrieve a logger by name.
void info(const std::string &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for INFO eve...
void setAdditivity(bool additive)
Set the additivity flag for this logger.
virtual const LevelPtr & getEffectiveLevel() const
Starting from this logger, search the logger hierarchy for a non-null level and return it.
void info(const std::wstring &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for INFO eve...
void removeAllAppenders() override
Remove all previously added appenders from this logger instance.
static LoggerPtr getLogger(const std::string &name, const log4cxx::spi::LoggerFactoryPtr &factory)
Like getLogger except that the type of logger instantiated depends on the type returned by the Logger...
void warn(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for WARN eve...
void l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1, const std::string &val2, const std::string &val3) const
Add a new logging event containing locationInfo and the localized message key using parameters val1,...
void info(const std::basic_string< UniChar > &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for INFO eve...
static LoggerPtr getLogger(const std::basic_string< UniChar > &name, const log4cxx::spi::LoggerFactoryPtr &factory)
Like getLogger except that the type of logger instantiated depends on the type returned by the Logger...
void setParent(LoggerPtr parentLogger)
Only the Hierarchy class can set the parent of a logger.
static bool isErrorEnabledFor(const LoggerPtr &logger)
Is logger is enabled for ERROR level logging events?
Definition: log4cxx/logger.h:1134
void callAppenders(const log4cxx::spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const
Call the appenders in the hierrachy starting at this.
void log(const LevelPtr &level, const std::basic_string< UniChar > &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to the appenders attached to this logger if t...
void error(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void warn(const std::basic_string< UniChar > &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for WARN eve...
static LoggerPtr getLoggerLS(const LogString &name, const log4cxx::spi::LoggerFactoryPtr &factory)
Like getLogger except that the type of logger instantiated depends on the type returned by the Logger...
void debug(const CFStringRef &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for DEBUG ev...
static LoggerPtr getLoggerLS(const LogString &name)
Retrieve a logger by name in Unicode.
void setResourceBundle(const helpers::ResourceBundlePtr &bundle)
Set the resource bundle to be used with localized logging methods.
AppenderList getAllAppenders() const override
Get the appenders contained in this logger as an AppenderList.
Logger(helpers::Pool &pool, const LogString &name)
This constructor initializes a new logger instance and sets its name.
void addEvent(const LevelPtr &level, std::wstring &&message, const spi::LocationInfo &location=spi::LocationInfo::getLocationUnavailable()) const
Add a new logging event containing message and location to attached appender(s).
void warn(const std::string &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for WARN eve...
void error(const std::wstring &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for ERROR ev...
void l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1, const std::basic_string< UniChar > &val2, const std::basic_string< UniChar > &val3) const
Add a new logging event containing locationInfo and the localized message key using parameters val1,...
void trace(const std::string &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for TRACE ev...
static LoggerPtr getLogger(const std::wstring &name)
Retrieve a logger by name.
helpers::ResourceBundlePtr getResourceBundle() const
Return the inherited ResourceBundle for this logger.
void fatal(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void logLS(const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to the appenders attached to this logger if t...
static LoggerPtr getLogger(const char *const name)
Retrieve a logger by name in current encoding.
bool isInfoEnabled() const
Is this logger is enabled for INFO level logging events?
void trace(const std::string &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for TRACE ev...
log4cxx::spi::LoggerRepository * getLoggerRepository() const
Return the the LoggerRepository where this Logger is attached.
bool isAttached(const AppenderPtr appender) const override
Is appender attached to this logger?
bool isFatalEnabled() const
Is this logger is enabled for FATAL level logging events?
void debug(const std::basic_string< UniChar > &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for DEBUG ev...
void warn(const CFStringRef &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for WARN eve...
void log(const LevelPtr &level, const CFStringRef &message) const
Add a new logging event containing message to the appenders attached to this logger if this logger is...
virtual void setLevel(const LevelPtr level)
Set the level of this logger.
void getName(std::wstring &name) const
Put name of this logger into name.
bool isWarnEnabled() const
Is this logger is enabled for WARN level logging events?
void l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val) const
Add a new logging event containing locationInfo and the localized message key using parameter val to ...
void removeAppender(const LogString &name) override
Remove the appender with the name passed as parameter form the list of appenders.
void debug(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void fatal(const CFStringRef &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for ERROR ev...
void log(const LevelPtr &level, const std::basic_string< UniChar > &message) const
Add a new logging event containing message to the appenders attached to this logger if this logger is...
void l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1, const std::basic_string< UniChar > &val2) const
Add a new logging event containing locationInfo and the localized message key using parameters val1 a...
void addEventLS(const LevelPtr &level, LogString &&message, const spi::LocationInfo &location=spi::LocationInfo::getLocationUnavailable()) const
Add a new logging event containing message and location to attached appender(s).
void log(const LevelPtr &level, const std::string &message) const
Add a new logging event containing message to the appenders attached to this logger if this logger is...
void trace(const std::basic_string< UniChar > &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for TRACE ev...
void l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo) const
Add a new logging event containing locationInfo and the localized message key to attached appender(s)...
void trace(const std::wstring &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for TRACE ev...
void error(const std::string &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for ERROR ev...
void l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1, const CFStringRef &val2) const
Add a new logging event containing locationInfo and the localized message key using parameters val1 a...
void addEvent(const LevelPtr &level, std::basic_string< UniChar > &&message, const spi::LocationInfo &location=spi::LocationInfo::getLocationUnavailable()) const
Add a new logging event containing message and location to attached appender(s).
void fatal(const std::wstring &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for ERROR ev...
static LoggerPtr getLogger(const CFStringRef &name, const log4cxx::spi::LoggerFactoryPtr &factory)
Like getLogger except that the type of logger instantiated depends on the type returned by the Logger...
const LogString & getName() const
Get the logger name.
LogString getResourceBundleString(const LogString &key) const
Returns the string resource corresponding to key in this logger's inherited resource bundle.
bool isEnabledFor(const LevelPtr &level) const
Is this logger is enabled for logging events at level?
static LoggerPtr getLogger(const wchar_t *const name)
Retrieve a logger by name.
void debug(const std::string &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void debug(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void info(const std::string &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for INFO eve...
void forcedLog(const LevelPtr &level, const std::basic_string< UniChar > &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to attached appender(s).
void forcedLog(const LevelPtr &level, const std::basic_string< UniChar > &message) const
Add a new logging event containing message to attached appender(s).
static bool isWarnEnabledFor(const LoggerPtr &logger)
Is logger is enabled for WARN level logging events?
Definition: log4cxx/logger.h:1108
void error(const CFStringRef &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for ERROR ev...
void addEvent(const LevelPtr &level, std::string &&message, const spi::LocationInfo &location=spi::LocationInfo::getLocationUnavailable()) const
Add a new logging event containing message and location to attached appender(s).
void error(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void warn(const std::string &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for WARN eve...
void l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val) const
Add a new logging event containing locationInfo and the localized message key using parameter val to ...
void warn(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for WARN eve...
void forcedLog(const LevelPtr &level, const CFStringRef &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to attached appender(s).
void forcedLog(const LevelPtr &level, const CFStringRef &message) const
Add a new logging event containing message to attached appender(s).
void fatal(const std::string &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for ERROR ev...
void log(const LevelPtr &level, const std::wstring &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to the appenders attached to this logger if t...
static bool isDebugEnabledFor(const LoggerPtr &logger)
Is logger is enabled for DEBUG level logging events?
Definition: log4cxx/logger.h:1048
void warn(const std::wstring &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for WARN eve...
AppenderPtr getAppender(const LogString &name) const override
Look for the appender named as name.
void setHierarchy(spi::LoggerRepository *repository)
Only the Hierarchy class can set the hierarchy of a logger.
void debug(const std::wstring &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for DEBUG ev...
void l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo) const
Add a new logging event containing locationInfo and the localized message key to attached appender(s)...
void trace(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for TRACE ev...
void l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1, const std::string &val2) const
Add a new logging event containing locationInfo and the localized message key using parameters val1 a...
static bool isFatalEnabledFor(const LoggerPtr &logger)
Is logger is enabled for FATAL level logging events?
Definition: log4cxx/logger.h:1160
static LoggerPtr getLogger(const CFStringRef &name)
Retrieve a logger by name.
static LoggerPtr getLogger(const std::wstring &name, const log4cxx::spi::LoggerFactoryPtr &factory)
Like getLogger except that the type of logger instantiated depends on the type returned by the Logger...
void error(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void forcedLogLS(const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to attached appender(s).
void error(const std::basic_string< UniChar > &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for ERROR ev...
void l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val) const
Add a new logging event containing locationInfo and the localized message key using parameter val to ...
void fatal(const std::basic_string< UniChar > &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for ERROR ev...
static bool isInfoEnabledFor(const LoggerPtr &logger)
Is logger is enabled for INFO level logging events?
Definition: log4cxx/logger.h:1082
static LoggerPtr getLogger(const std::string &name)
Retrieve a logger by name in current encoding.
bool isDebugEnabled() const
Is this logger is enabled for DEBUG level logging events?
const LevelPtr & getLevel() const
The assigned Level, if any, for this logger.
void removeHierarchy()
Only the Hierarchy class can remove the hierarchy of a logger.
void error(const std::string &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void forcedLog(const LevelPtr &level, const std::wstring &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to attached appender(s).
void info(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for INFO eve...
void getName(std::string &name) const
Put name of this logger into name in current encoding.
void forcedLog(const LevelPtr &level, const std::wstring &message) const
Add a new logging event containing message to attached appender(s).
void l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo) const
Add a new logging event containing locationInfo and the localized message key to attached appender(s)...
void fatal(const std::string &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void log(const LevelPtr &level, const std::string &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to the appenders attached to this logger if t...
void fatal(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void fatal(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
bool getAdditivity() const
Get the additivity flag for this logger.
void getName(CFStringRef &name) const
Put name of this logger into name.
static LoggerPtr getRootLogger()
Retrieve the root logger.
void trace(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for TRACE ev...
void log(const LevelPtr &level, const CFStringRef &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to the appenders attached to this logger if t...
void warn(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for WARN eve...
void trace(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for TRACE ev...
LoggerPtr getParent() const
The parent of this logger.
void updateThreshold()
Only the Hierarchy class can change the threshold of a logger.
void l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1, const std::wstring &val2) const
Add a new logging event containing locationInfo and the localized message key using parameters val1 a...
void l7dlog(const LevelPtr &level, const LogString &key, const log4cxx::spi::LocationInfo &locationInfo, const std::vector< LogString > &values) const
Add a new logging event containing locationInfo and the localized message key using values for parame...
void forcedLog(const LevelPtr &level, const std::string &message, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing message and location to attached appender(s).
void l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1, const std::wstring &val2, const std::wstring &val3) const
Add a new logging event containing locationInfo and the localized message key using parameters val1,...
void l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo) const
Add a new logging event containing locationInfo and the localized message key to attached appender(s)...
void closeNestedAppenders()
Close all attached appenders implementing the AppenderAttachable interface.
void info(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for INFO eve...
void info(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for INFO eve...
void info(const CFStringRef &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for INFO eve...
void debug(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
Add a new logging event containing msg and location to attached appender(s) if this logger is enabled...
void l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1, const CFStringRef &val2, const CFStringRef &val3) const
Add a new logging event containing locationInfo and the localized message key using parameters val1,...
void getName(std::basic_string< UniChar > &name) const
Put name of this logger into name.
void trace(const CFStringRef &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for TRACE ev...
void removeAppender(const AppenderPtr appender) override
Remove the appender passed as parameter form the list of appenders.
static bool isTraceEnabledFor(const LoggerPtr &logger)
Is logger is enabled for TRACE level logging events?
Definition: log4cxx/logger.h:1186
void l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1) const
Add a new logging event containing locationInfo and the localized message key using parameter val to ...
void debug(const std::string &msg) const
Add a new logging event containing msg to attached appender(s) if this logger is enabled for DEBUG ev...
void reconfigure(const std::vector< AppenderPtr > &appenders, bool additivity)
Reconfigure this logger by configuring all of the appenders.
bool isErrorEnabled() const
Is this logger is enabled for ERROR level logging events?
void addAppender(const AppenderPtr newAppender) override
Add newAppender to the list of appenders of this Logger instance.
void forcedLog(const LevelPtr &level, const std::string &message) const
Add a new logging event containing message to attached appender(s).
bool isTraceEnabled() const
Is this logger is enabled for TRACE level logging events?
Definition: pool.h:33
This Interface is for attaching Appenders to objects.
Definition: appenderattachable.h:34
This class represents the location of a logging statement.
Definition: locationinfo.h:46
Implement this interface to create new instances of Logger or a sub-class of Logger.
Definition: loggerfactory.h:33
A LoggerRepository is used to create and retrieve Loggers.
Definition: loggerrepository.h:43
const struct __CFString * CFStringRef
Definition: logstring.h:30
LOG4CXX_PTR_DEF(LoggerRepository)
std::shared_ptr< LoggingEvent > LoggingEventPtr
Definition: appender.h:32
std::shared_ptr< LoggerFactory > LoggerFactoryPtr
Definition: logmanager.h:34
Definition: configuration.h:25
LOG4CXX_LIST_DEF(AppenderList, AppenderPtr)
std::basic_string< logchar > LogString
Definition: logstring.h:60
std::shared_ptr< Level > LevelPtr
Definition: optionconverter.h:28
LOG4CXX_PTR_DEF(Appender)
std::shared_ptr< Appender > AppenderPtr
Definition: basicconfigurator.h:29
std::shared_ptr< Logger > LoggerPtr
Definition: defaultloggerfactory.h:27
std::vector< LoggerPtr > LoggerList
Definition: logmanager.h:29
#define LOG4CXX_CAST_ENTRY(Interface)
Definition: object.h:158
#define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)
Definition: object.h:39
#define END_LOG4CXX_CAST_MAP()
Definition: object.h:152
#define BEGIN_LOG4CXX_CAST_MAP()
Definition: object.h:146