12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef OPENCV_LOGGING_HPP
- #define OPENCV_LOGGING_HPP
- #include <iostream>
- #include <sstream>
- #include <limits.h> // INT_MAX
- namespace cv {
- namespace utils {
- namespace logging {
- #define CV_LOG_LEVEL_SILENT 0
- #define CV_LOG_LEVEL_FATAL 1
- #define CV_LOG_LEVEL_ERROR 2
- #define CV_LOG_LEVEL_WARN 3
- #define CV_LOG_LEVEL_INFO 4
- #define CV_LOG_LEVEL_DEBUG 5
- #define CV_LOG_LEVEL_VERBOSE 6
- enum LogLevel {
- LOG_LEVEL_SILENT = 0,
- LOG_LEVEL_FATAL = 1,
- LOG_LEVEL_ERROR = 2,
- LOG_LEVEL_WARNING = 3,
- LOG_LEVEL_INFO = 4,
- LOG_LEVEL_DEBUG = 5,
- LOG_LEVEL_VERBOSE = 6,
- #ifndef CV_DOXYGEN
- ENUM_LOG_LEVEL_FORCE_INT = INT_MAX
- #endif
- };
- #ifndef CV_LOG_STRIP_LEVEL
- # if defined NDEBUG
- # define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG
- # else
- # define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_VERBOSE
- # endif
- #endif
- #define CV_LOG_FATAL(tag, ...) for(;;) { std::stringstream ss; ss << "[FATAL:" << cv::utils::getThreadID() << "] " << __VA_ARGS__ << std::endl; std::cerr << ss.str(); break; }
- #define CV_LOG_ERROR(tag, ...) for(;;) { std::stringstream ss; ss << "[ERROR:" << cv::utils::getThreadID() << "] " << __VA_ARGS__ << std::endl; std::cerr << ss.str(); break; }
- #define CV_LOG_WARNING(tag, ...) for(;;) { std::stringstream ss; ss << "[ WARN:" << cv::utils::getThreadID() << "] " << __VA_ARGS__ << std::endl; std::cout << ss.str(); break; }
- #if CV_LOG_STRIP_LEVEL <= CV_LOG_LEVEL_INFO
- #define CV_LOG_INFO(tag, ...)
- #else
- #define CV_LOG_INFO(tag, ...) for(;;) { std::stringstream ss; ss << "[ INFO:" << cv::utils::getThreadID() << "] " << __VA_ARGS__ << std::endl; std::cout << ss.str(); break; }
- #endif
- #if CV_LOG_STRIP_LEVEL <= CV_LOG_LEVEL_DEBUG
- #define CV_LOG_DEBUG(tag, ...)
- #else
- #define CV_LOG_DEBUG(tag, ...) for(;;) { std::stringstream ss; ss << "[DEBUG:" << cv::utils::getThreadID() << "] " << __VA_ARGS__ << std::endl; std::cout << ss.str(); break; }
- #endif
- #if CV_LOG_STRIP_LEVEL <= CV_LOG_LEVEL_VERBOSE
- #define CV_LOG_VERBOSE(tag, v, ...)
- #else
- #define CV_LOG_VERBOSE(tag, v, ...) for(;;) { std::stringstream ss; ss << "[VERB" << v << ":" << cv::utils::getThreadID() << "] " << __VA_ARGS__ << std::endl; std::cout << ss.str(); break; }
- #endif
- }}}
- #endif
|