diff options
Diffstat (limited to 'src/corelib/io/qloggingcategory.h')
-rw-r--r-- | src/corelib/io/qloggingcategory.h | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/corelib/io/qloggingcategory.h b/src/corelib/io/qloggingcategory.h index 15c0519827..37735908a1 100644 --- a/src/corelib/io/qloggingcategory.h +++ b/src/corelib/io/qloggingcategory.h @@ -94,15 +94,26 @@ private: return category; \ } -#define qCDebug(category) \ - for (bool enabled = category().isDebugEnabled(); Q_UNLIKELY(enabled); enabled = false) \ - QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).debug() -#define qCWarning(category) \ - for (bool enabled = category().isWarningEnabled(); enabled; enabled = false) \ - QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).warning() -#define qCCritical(category) \ - for (bool enabled = category().isCriticalEnabled(); enabled; enabled = false) \ - QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).critical() +#ifdef Q_COMPILER_VARIADIC_MACROS + +#define qCDebug(category, ...) \ + if (!category().isDebugEnabled()) {} else \ + QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).debug(__VA_ARGS__) +#define qCWarning(category, ...) \ + if (!category().isWarningEnabled()) {} else \ + QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).warning(__VA_ARGS__) +#define qCCritical(category, ...) \ + if (!category().isCriticalEnabled()) {} else \ + QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).critical(__VA_ARGS__) + +#else + +// check for enabled category inside QMessageLogger. +#define qCDebug qDebug +#define qCWarning qWarning +#define qCCritical qCritical + +#endif // Q_COMPILER_VARIADIC_MACROS #if defined(QT_NO_DEBUG_OUTPUT) # undef qCDebug |