Index: src/chext/TLogger.h =================================================================== diff -u -N -rb79aca0d66b1084f230022efe39cc89307482e6d -r3d1de44762647618faf9b5b3a87f89b293899d8d --- src/chext/TLogger.h (.../TLogger.h) (revision b79aca0d66b1084f230022efe39cc89307482e6d) +++ src/chext/TLogger.h (.../TLogger.h) (revision 3d1de44762647618faf9b5b3a87f89b293899d8d) @@ -22,6 +22,8 @@ #include #include #include +#include +#include "HResultFormatter.h" // ugly way to include severity_level in the global namespace using namespace boost::log::trivial; @@ -30,4 +32,38 @@ BOOST_LOG_GLOBAL_LOGGER(Logger, TLogger) +// logging helpers +namespace details +{ + constexpr severity_level HRESULT2Severity(HRESULT hResult) + { + return (SUCCEEDED(hResult)) ? debug : error; + } +} + +#define BOOST_LOG_HRESULT(lg, hr)\ + BOOST_LOG_SEV(lg, details::HRESULT2Severity(hr)) << L" <" << HResultFormatter::FormatHResult(hr) << L"> " + +#define LOG_PARAM(param)\ + #param << "=" << param + +#define LOG_PARAMS2(a1, a2)\ + LOG_PARAM(a1) << ", " << LOG_PARAM(a2) +#define LOG_PARAMS3(a1, a2, a3)\ + LOG_PARAMS2(a1, a2) << ", " << LOG_PARAM(a3) +#define LOG_PARAMS4(a1, a2, a3, a4)\ + LOG_PARAMS3(a1, a2, a3) << ", " << LOG_PARAM(a4) +#define LOG_PARAMS5(a1, a2, a3, a4, a5)\ + LOG_PARAMS4(a1, a2, a3, a4) << ", " << LOG_PARAM(a5) +#define LOG_PARAMS6(a1, a2, a3, a4, a5, a6)\ + LOG_PARAMS5(a1, a2, a3, a4, a5) << ", " << LOG_PARAM(a6) +#define LOG_PARAMS7(a1, a2, a3, a4, a5, a6, a7)\ + LOG_PARAMS6(a1, a2, a3, a4, a5, a6) << ", " << LOG_PARAM(a7) +#define LOG_PARAMS8(a1, a2, a3, a4, a5, a6, a7, a8)\ + LOG_PARAMS7(a1, a2, a3, a4, a5, a6, a7) << ", " << LOG_PARAM(a8) +#define LOG_PARAMS9(a1, a2, a3, a4, a5, a6, a7, a8, a9)\ + LOG_PARAMS8(a1, a2, a3, a4, a5, a6, a7, a8) << ", " << LOG_PARAM(a9) +#define LOG_PARAMS10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)\ + LOG_PARAMS9(a1, a2, a3, a4, a5, a6, a7, a8, a9) << ", " << LOG_PARAM(a10) + #endif