I use boost::logas a registrar for my C ++ program. During development, I often use it this way, for example:
#define LOG(severity) BOOST_LOG_SEV(boost::logger::get(), (severity))
#define LOG_ERR LOG(Severity::error)
#define LOG_INFO LOG(Severity::info)
#define LOG_DEBUG LOG(Severity::debug)
where BOOST_LOG_SEV- is the means provided boost::log, and LOG, LOG_ERROR, LOG_INFO, LOG_DEBUG- labels that defined me.
In short, it BOOST_LOG_SEVdynamically compares the current debugging degree with the severity passed to the macro itself to decide whether to output the result or not.
This is an example program that uses the above macros for debugging purposes:
int main() {
boost::log::set_severity(boost::logger::get(), MAX_LOG_SEVERITY);
if (err)
LOG_ERR << "An error occurred";
else
LOG_INFO << "Okay;
LOG_DEBUG << "main() called";
}
, , Severity::debug . MAX_LOG_SEVERITY Severity::info, , , LOG_DEBUG, . .
, operator<<().
, / LOG_DEBUG, ( ) "" "" , MAX_LOG_SEVERITY Severity::debug?