diff options
Diffstat (limited to 'host')
-rw-r--r-- | host/include/uhd/utils/log.hpp | 17 | ||||
-rw-r--r-- | host/lib/utils/log.cpp | 27 |
2 files changed, 30 insertions, 14 deletions
diff --git a/host/include/uhd/utils/log.hpp b/host/include/uhd/utils/log.hpp index 75c335099..b3e88f865 100644 --- a/host/include/uhd/utils/log.hpp +++ b/host/include/uhd/utils/log.hpp @@ -49,19 +49,20 @@ */ /*! - * A UHD logger macro with default verbosity. - * Usage: UHD_LOG << "the log message" << std::endl; - */ -#define UHD_LOG \ - uhd::_log::log(uhd::_log::regularly, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) - -/*! * A UHD logger macro with configurable verbosity. * Usage: UHD_LOGV(very_rarely) << "the log message" << std::endl; */ #define UHD_LOGV(verbosity) \ uhd::_log::log(uhd::_log::verbosity, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) +/*! + * A UHD logger macro with default verbosity. + * Usage: UHD_LOG << "the log message" << std::endl; + */ +#define UHD_LOG \ + UHD_LOGV(regularly) + + namespace uhd{ namespace _log{ //! Verbosity levels for the logger @@ -74,7 +75,7 @@ namespace uhd{ namespace _log{ }; //! Internal logging object (called by UHD_LOG macros) - struct UHD_API log{ + struct /*UHD_API*/ log{ log( const verbosity_t verbosity, const std::string &file, diff --git a/host/lib/utils/log.cpp b/host/lib/utils/log.cpp index 7df077a96..061173d6b 100644 --- a/host/lib/utils/log.cpp +++ b/host/lib/utils/log.cpp @@ -142,6 +142,17 @@ UHD_SINGLETON_FCN(uhd_logger_stream_resource_class, uhd_logger_stream_resource); /*********************************************************************** * The logger function implementation **********************************************************************/ +//! get the relative file path from the host directory +static std::string get_rel_file_path(const fs::path &file){ + fs::path abs_path = file.branch_path(); + fs::path rel_path = file.leaf(); + while (not abs_path.empty() and abs_path.leaf() != "host"){ + rel_path = abs_path.leaf() / rel_path; + abs_path = abs_path.branch_path(); + } + return rel_path.string(); +} + uhd::_log::log::log( const verbosity_t verbosity, const std::string &file, @@ -151,18 +162,22 @@ uhd::_log::log::log( uhd_logger_stream_resource().aquire(true); uhd_logger_stream_resource().set_verbosity(verbosity); const std::string time = pt::to_simple_string(pt::microsec_clock::local_time()); - const std::string header = str(boost::format( - "-- %s - lvl %d - %s @ %s:%u" - ) % time % int(verbosity) % function % fs::path(file).leaf() % line); + const std::string header1 = str(boost::format("-- %s - level %d") % time % int(verbosity)); + const std::string header2 = str(boost::format("-- %s") % function).substr(0, 80); + const std::string header3 = str(boost::format("-- %s:%u") % get_rel_file_path(file) % line); + const std::string border = std::string(std::max(std::max(header1.size(), header2.size()), header3.size()), '-'); uhd_logger_stream_resource().get() << std::endl - << std::string(header.size(), '-') << std::endl - << header << std::endl - << std::string(header.size(), '-') << std::endl + << border << std::endl + << header1 << std::endl + << header2 << std::endl + << header3 << std::endl + << border << std::endl ; } uhd::_log::log::~log(void){ + uhd_logger_stream_resource().get() << std::endl; uhd_logger_stream_resource().aquire(false); } |