annotate DEPENDENCIES/generic/include/boost/log/sources/severity_channel_logger.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 /*
Chris@101 2 * Copyright Andrey Semashev 2007 - 2015.
Chris@16 3 * Distributed under the Boost Software License, Version 1.0.
Chris@16 4 * (See accompanying file LICENSE_1_0.txt or copy at
Chris@16 5 * http://www.boost.org/LICENSE_1_0.txt)
Chris@16 6 */
Chris@16 7 /*!
Chris@16 8 * \file severity_channel_logger.hpp
Chris@16 9 * \author Andrey Semashev
Chris@16 10 * \date 28.02.2008
Chris@16 11 *
Chris@16 12 * The header contains implementation of a logger with severity level and channel support.
Chris@16 13 */
Chris@16 14
Chris@16 15 #ifndef BOOST_LOG_SOURCES_SEVERITY_CHANNEL_LOGGER_HPP_INCLUDED_
Chris@16 16 #define BOOST_LOG_SOURCES_SEVERITY_CHANNEL_LOGGER_HPP_INCLUDED_
Chris@16 17
Chris@16 18 #include <string>
Chris@16 19 #include <boost/log/detail/config.hpp>
Chris@16 20 #if !defined(BOOST_LOG_NO_THREADS)
Chris@16 21 #include <boost/log/detail/light_rw_mutex.hpp>
Chris@16 22 #endif // !defined(BOOST_LOG_NO_THREADS)
Chris@16 23 #include <boost/log/sources/features.hpp>
Chris@16 24 #include <boost/log/sources/basic_logger.hpp>
Chris@16 25 #include <boost/log/sources/threading_models.hpp>
Chris@16 26 #include <boost/log/sources/severity_feature.hpp>
Chris@16 27 #include <boost/log/sources/channel_feature.hpp>
Chris@16 28 #include <boost/log/detail/header.hpp>
Chris@16 29
Chris@16 30 #ifdef BOOST_HAS_PRAGMA_ONCE
Chris@16 31 #pragma once
Chris@16 32 #endif
Chris@16 33
Chris@16 34 namespace boost {
Chris@16 35
Chris@16 36 BOOST_LOG_OPEN_NAMESPACE
Chris@16 37
Chris@16 38 namespace sources {
Chris@16 39
Chris@16 40 #ifndef BOOST_LOG_DOXYGEN_PASS
Chris@16 41
Chris@16 42 #ifdef BOOST_LOG_USE_CHAR
Chris@16 43
Chris@16 44 //! Narrow-char logger with severity level and channel support
Chris@16 45 template< typename LevelT = int, typename ChannelT = std::string >
Chris@16 46 class severity_channel_logger :
Chris@16 47 public basic_composite_logger<
Chris@16 48 char,
Chris@16 49 severity_channel_logger< LevelT, ChannelT >,
Chris@16 50 single_thread_model,
Chris@16 51 features<
Chris@16 52 severity< LevelT >,
Chris@16 53 channel< ChannelT >
Chris@16 54 >
Chris@16 55 >
Chris@16 56 {
Chris@16 57 BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(severity_channel_logger)
Chris@16 58 };
Chris@16 59
Chris@16 60 #if !defined(BOOST_LOG_NO_THREADS)
Chris@16 61
Chris@16 62 //! Narrow-char thread-safe logger with severity level and channel support
Chris@16 63 template< typename LevelT = int, typename ChannelT = std::string >
Chris@16 64 class severity_channel_logger_mt :
Chris@16 65 public basic_composite_logger<
Chris@16 66 char,
Chris@16 67 severity_channel_logger_mt< LevelT, ChannelT >,
Chris@16 68 multi_thread_model< boost::log::aux::light_rw_mutex >,
Chris@16 69 features<
Chris@16 70 severity< LevelT >,
Chris@16 71 channel< ChannelT >
Chris@16 72 >
Chris@16 73 >
Chris@16 74 {
Chris@16 75 BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(severity_channel_logger_mt)
Chris@16 76 };
Chris@16 77
Chris@16 78 #endif // !defined(BOOST_LOG_NO_THREADS)
Chris@16 79
Chris@16 80 #endif // BOOST_LOG_USE_CHAR
Chris@16 81
Chris@16 82 #ifdef BOOST_LOG_USE_WCHAR_T
Chris@16 83
Chris@16 84 //! Wide-char logger with severity level and channel support
Chris@16 85 template< typename LevelT = int, typename ChannelT = std::wstring >
Chris@16 86 class wseverity_channel_logger :
Chris@16 87 public basic_composite_logger<
Chris@16 88 wchar_t,
Chris@16 89 wseverity_channel_logger< LevelT, ChannelT >,
Chris@16 90 single_thread_model,
Chris@16 91 features<
Chris@16 92 severity< LevelT >,
Chris@16 93 channel< ChannelT >
Chris@16 94 >
Chris@16 95 >
Chris@16 96 {
Chris@16 97 BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(wseverity_channel_logger)
Chris@16 98 };
Chris@16 99
Chris@16 100 #if !defined(BOOST_LOG_NO_THREADS)
Chris@16 101
Chris@16 102 //! Wide-char thread-safe logger with severity level and channel support
Chris@16 103 template< typename LevelT = int, typename ChannelT = std::wstring >
Chris@16 104 class wseverity_channel_logger_mt :
Chris@16 105 public basic_composite_logger<
Chris@16 106 wchar_t,
Chris@16 107 wseverity_channel_logger_mt< LevelT, ChannelT >,
Chris@16 108 multi_thread_model< boost::log::aux::light_rw_mutex >,
Chris@16 109 features<
Chris@16 110 severity< LevelT >,
Chris@16 111 channel< ChannelT >
Chris@16 112 >
Chris@16 113 >
Chris@16 114 {
Chris@16 115 BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(wseverity_channel_logger_mt)
Chris@16 116 };
Chris@16 117
Chris@16 118 #endif // !defined(BOOST_LOG_NO_THREADS)
Chris@16 119
Chris@16 120 #endif // BOOST_LOG_USE_WCHAR_T
Chris@16 121
Chris@16 122 #else // BOOST_LOG_DOXYGEN_PASS
Chris@16 123
Chris@16 124 /*!
Chris@16 125 * \brief Narrow-char logger. Functionally equivalent to \c basic_severity_logger and \c basic_channel_logger.
Chris@16 126 *
Chris@16 127 * See \c severity and \c channel class templates for a more detailed description
Chris@16 128 */
Chris@16 129 template< typename LevelT = int, typename ChannelT = std::string >
Chris@16 130 class severity_channel_logger :
Chris@16 131 public basic_composite_logger<
Chris@16 132 char,
Chris@16 133 severity_channel_logger< LevelT, ChannelT >,
Chris@16 134 single_thread_model,
Chris@16 135 features<
Chris@16 136 severity< LevelT >,
Chris@16 137 channel< ChannelT >
Chris@16 138 >
Chris@16 139 >
Chris@16 140 {
Chris@16 141 public:
Chris@16 142 /*!
Chris@16 143 * Default constructor
Chris@16 144 */
Chris@16 145 severity_channel_logger();
Chris@16 146 /*!
Chris@16 147 * Copy constructor
Chris@16 148 */
Chris@16 149 severity_channel_logger(severity_channel_logger const& that);
Chris@16 150 /*!
Chris@16 151 * Constructor with named arguments
Chris@16 152 */
Chris@16 153 template< typename... ArgsT >
Chris@16 154 explicit severity_channel_logger(ArgsT... const& args);
Chris@16 155 /*!
Chris@16 156 * Assignment operator
Chris@16 157 */
Chris@16 158 severity_channel_logger& operator= (severity_channel_logger const& that)
Chris@16 159 /*!
Chris@16 160 * Swaps two loggers
Chris@16 161 */
Chris@16 162 void swap(severity_channel_logger& that);
Chris@16 163 };
Chris@16 164
Chris@16 165 /*!
Chris@16 166 * \brief Narrow-char thread-safe logger. Functionally equivalent to \c basic_severity_logger and \c basic_channel_logger.
Chris@16 167 *
Chris@16 168 * See \c severity and \c channel class templates for a more detailed description
Chris@16 169 */
Chris@16 170 template< typename LevelT = int, typename ChannelT = std::string >
Chris@16 171 class severity_channel_logger_mt :
Chris@16 172 public basic_composite_logger<
Chris@16 173 char,
Chris@16 174 severity_channel_logger_mt< LevelT, ChannelT >,
Chris@16 175 multi_thread_model< implementation_defined >,
Chris@16 176 features<
Chris@16 177 severity< LevelT >,
Chris@16 178 channel< ChannelT >
Chris@16 179 >
Chris@16 180 >
Chris@16 181 {
Chris@16 182 public:
Chris@16 183 /*!
Chris@16 184 * Default constructor
Chris@16 185 */
Chris@16 186 severity_channel_logger_mt();
Chris@16 187 /*!
Chris@16 188 * Copy constructor
Chris@16 189 */
Chris@16 190 severity_channel_logger_mt(severity_channel_logger_mt const& that);
Chris@16 191 /*!
Chris@16 192 * Constructor with named arguments
Chris@16 193 */
Chris@16 194 template< typename... ArgsT >
Chris@16 195 explicit severity_channel_logger_mt(ArgsT... const& args);
Chris@16 196 /*!
Chris@16 197 * Assignment operator
Chris@16 198 */
Chris@16 199 severity_channel_logger_mt& operator= (severity_channel_logger_mt const& that)
Chris@16 200 /*!
Chris@16 201 * Swaps two loggers
Chris@16 202 */
Chris@16 203 void swap(severity_channel_logger_mt& that);
Chris@16 204 };
Chris@16 205
Chris@16 206 /*!
Chris@16 207 * \brief Wide-char logger. Functionally equivalent to \c basic_severity_logger and \c basic_channel_logger.
Chris@16 208 *
Chris@16 209 * See \c severity and \c channel class templates for a more detailed description
Chris@16 210 */
Chris@16 211 template< typename LevelT = int, typename ChannelT = std::wstring >
Chris@16 212 class wseverity_channel_logger :
Chris@16 213 public basic_composite_logger<
Chris@16 214 wchar_t,
Chris@16 215 wseverity_channel_logger< LevelT, ChannelT >,
Chris@16 216 single_thread_model,
Chris@16 217 features<
Chris@16 218 severity< LevelT >,
Chris@16 219 channel< ChannelT >
Chris@16 220 >
Chris@16 221 >
Chris@16 222 {
Chris@16 223 public:
Chris@16 224 /*!
Chris@16 225 * Default constructor
Chris@16 226 */
Chris@16 227 wseverity_channel_logger();
Chris@16 228 /*!
Chris@16 229 * Copy constructor
Chris@16 230 */
Chris@16 231 wseverity_channel_logger(wseverity_channel_logger const& that);
Chris@16 232 /*!
Chris@16 233 * Constructor with named arguments
Chris@16 234 */
Chris@16 235 template< typename... ArgsT >
Chris@16 236 explicit wseverity_channel_logger(ArgsT... const& args);
Chris@16 237 /*!
Chris@16 238 * Assignment operator
Chris@16 239 */
Chris@16 240 wseverity_channel_logger& operator= (wseverity_channel_logger const& that)
Chris@16 241 /*!
Chris@16 242 * Swaps two loggers
Chris@16 243 */
Chris@16 244 void swap(wseverity_channel_logger& that);
Chris@16 245 };
Chris@16 246
Chris@16 247 /*!
Chris@16 248 * \brief Wide-char thread-safe logger. Functionally equivalent to \c basic_severity_logger and \c basic_channel_logger.
Chris@16 249 *
Chris@16 250 * See \c severity and \c channel class templates for a more detailed description
Chris@16 251 */
Chris@16 252 template< typename LevelT = int, typename ChannelT = std::wstring >
Chris@16 253 class wseverity_channel_logger_mt :
Chris@16 254 public basic_composite_logger<
Chris@16 255 wchar_t,
Chris@16 256 wseverity_channel_logger_mt< LevelT, ChannelT >,
Chris@16 257 multi_thread_model< implementation_defined >,
Chris@16 258 features<
Chris@16 259 severity< LevelT >,
Chris@16 260 channel< ChannelT >
Chris@16 261 >
Chris@16 262 >
Chris@16 263 {
Chris@16 264 public:
Chris@16 265 /*!
Chris@16 266 * Default constructor
Chris@16 267 */
Chris@16 268 wseverity_channel_logger_mt();
Chris@16 269 /*!
Chris@16 270 * Copy constructor
Chris@16 271 */
Chris@16 272 wseverity_channel_logger_mt(wseverity_channel_logger_mt const& that);
Chris@16 273 /*!
Chris@16 274 * Constructor with named arguments
Chris@16 275 */
Chris@16 276 template< typename... ArgsT >
Chris@16 277 explicit wseverity_channel_logger_mt(ArgsT... const& args);
Chris@16 278 /*!
Chris@16 279 * Assignment operator
Chris@16 280 */
Chris@16 281 wseverity_channel_logger_mt& operator= (wseverity_channel_logger_mt const& that)
Chris@16 282 /*!
Chris@16 283 * Swaps two loggers
Chris@16 284 */
Chris@16 285 void swap(wseverity_channel_logger_mt& that);
Chris@16 286 };
Chris@16 287
Chris@16 288 #endif // BOOST_LOG_DOXYGEN_PASS
Chris@16 289
Chris@16 290 } // namespace sources
Chris@16 291
Chris@16 292 BOOST_LOG_CLOSE_NAMESPACE // namespace log
Chris@16 293
Chris@16 294 } // namespace boost
Chris@16 295
Chris@16 296 //! The macro allows to put a record with a specific channel name into log
Chris@16 297 #define BOOST_LOG_STREAM_CHANNEL_SEV(logger, chan, lvl)\
Chris@16 298 BOOST_LOG_STREAM_WITH_PARAMS((logger), (::boost::log::keywords::channel = (chan))(::boost::log::keywords::severity = (lvl)))
Chris@16 299
Chris@16 300 #ifndef BOOST_LOG_NO_SHORTHAND_NAMES
Chris@16 301
Chris@16 302 //! An equivalent to BOOST_LOG_STREAM_CHANNEL_SEV(logger, chan, lvl)
Chris@16 303 #define BOOST_LOG_CHANNEL_SEV(logger, chan, lvl) BOOST_LOG_STREAM_CHANNEL_SEV(logger, chan, lvl)
Chris@16 304
Chris@16 305 #endif // BOOST_LOG_NO_SHORTHAND_NAMES
Chris@16 306
Chris@16 307 #include <boost/log/detail/footer.hpp>
Chris@16 308
Chris@16 309 #endif // BOOST_LOG_SOURCES_SEVERITY_CHANNEL_LOGGER_HPP_INCLUDED_