From 46f3b40a6d8c96a0531b461e2d13bbf28a6ec735 Mon Sep 17 00:00:00 2001 From: Kavindra Palaraja Date: Mon, 15 Jul 2019 14:04:57 +0200 Subject: Docs: Some cleanup of class documentation Change-Id: I62f89157e57189a97151f9661bc354af9bd67468 Reviewed-by: Kai Koehne --- src/corelib/io/qloggingcategory.cpp | 267 +++++++++++++++++------------------- 1 file changed, 127 insertions(+), 140 deletions(-) (limited to 'src/corelib/io/qloggingcategory.cpp') diff --git a/src/corelib/io/qloggingcategory.cpp b/src/corelib/io/qloggingcategory.cpp index 33253429a2..89607d5a98 100644 --- a/src/corelib/io/qloggingcategory.cpp +++ b/src/corelib/io/qloggingcategory.cpp @@ -70,14 +70,16 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift) QLoggingCategory represents a certain logging category - identified by a string - at runtime. A category can be configured to enable or disable - logging of messages per message type. Whether a message type is enabled or - not can be checked with the \l isDebugEnabled(), \l isInfoEnabled(), - \l isWarningEnabled(), and \l isCriticalEnabled() methods. - - All objects are meant to be configured by a common registry (see also - \l{Configuring Categories}). Different objects can also represent the same - category. It is therefore not recommended to export objects across module - boundaries, nor to manipulate the objects directly, nor to inherit from + logging of messages per message type. + + To check whether a message type is enabled or not, use one of these methods: + \l isDebugEnabled(), \l isInfoEnabled(), \l isWarningEnabled(), and + \l isCriticalEnabled(). + + All objects are meant to be configured by a common registry, as described in + \l{Configuring Categories}. Different objects can also represent the same + category. Therefore, it's \b{not} recommended to export objects across + module boundaries, to manipulate the objects directly, or to inherit from QLoggingCategory. \section1 Creating Category Objects @@ -87,17 +89,17 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift) \snippet qloggingcategory/main.cpp 1 - \note Category names are free text. However, to allow easy configuration - of the categories using \l{Logging Rules} the names should follow some rules: + Category names are free text; to configure categories using \l{Logging Rules}, their + names should follow this convention: \list \li Use letters and numbers only. - \li Further structure categories into common areas by using dots. - \li Avoid the category names \c{debug}, \c{info}, \c{warning}, and \c{critical}. - \li Category names starting with \c{qt} are reserved for Qt modules. + \li Use dots to further structure categories into common areas. + \li Avoid the category names: \c{debug}, \c{info}, \c{warning}, and \c{critical}. + \li Category names with the \c{qt} prefix are solely reserved for Qt modules. \endlist - QLoggingCategory objects implicitly defined by Q_LOGGING_CATEGORY() - are created on first use in a thread-safe manner. + QLoggingCategory objects that are implicitly defined by Q_LOGGING_CATEGORY() + are created on first use, in a thread-safe manner. \section1 Checking Category Configuration @@ -105,8 +107,8 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift) \l isWarningEnabled(), \l isCriticalEnabled(), as well as \l isEnabled() to check whether messages for the given message type should be logged. - \note The qCDebug(), qCWarning(), qCCritical() macros prevent arguments - from being evaluated if the respective message types are not enabled for the + The qCDebug(), qCWarning(), and qCCritical() macros prevent arguments from + being evaluated if the respective message types are not enabled for the category, so explicit checking is not needed: \snippet qloggingcategory/main.cpp 4 @@ -119,28 +121,27 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift) \snippet qloggingcategory/main.cpp 5 - will log messages of type \c QtWarningMsg, \c QtCriticalMsg, \c QtFatalMsg, but will - ignore messages of type \c QtDebugMsg and \c QtInfoMsg. + logs messages of type \c QtWarningMsg, \c QtCriticalMsg, \c QtFatalMsg, but + ignores messages of type \c QtDebugMsg and \c QtInfoMsg. - If no argument is passed, all messages will be logged. + If no argument is passed, all messages are logged. \section1 Configuring Categories - The default configuration of categories can be overridden either by setting logging - rules, or by installing a custom filter. + You can override the default configuration for categories either by setting + logging rules, or by installing a custom filter. \section2 Logging Rules - Logging rules allow logging for categories to be enabled or disabled in a - flexible way. Rules are specified in text, where every line must have the - format + Logging rules let you enable or disable logging for categories in a flexible + way. Rules are specified in text, where every line must have the format: \snippet code/src_corelib_io_qloggingcategory.cpp 0 \c is the name of the category, potentially with \c{*} as a - wildcard symbol as the first or last character (or at both positions). - The optional \c must be either \c debug, \c info, \c warning, or \c critical. - Lines that do not fit this scheme are ignored. + wildcard symbol for the first or last character; or at both positions. + The optional \c must be \c debug, \c info, \c warning, or \c critical. + Lines that don't fit this scheme are ignored. Rules are evaluated in text order, from first to last. That is, if two rules apply to a category/type, the rule that comes later is applied. @@ -149,47 +150,37 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift) \snippet code/src_corelib_io_qloggingcategory.cpp 1 - Since Qt 5.3, logging rules are also - automatically loaded from the \c [Rules] section of a logging - configuration file. Such configuration files are looked up in the QtProject - configuration directory, or explicitly set in a \c QT_LOGGING_CONF - environment variable: + Logging rules are automatically loaded from the \c [Rules] section in a logging + configuration file. These configuration files are looked up in the QtProject + configuration directory, or explicitly set in a \c QT_LOGGING_CONF environment + variable: \snippet code/src_corelib_io_qloggingcategory.cpp 2 - Since Qt 5.3, logging rules can also be specified in a \c QT_LOGGING_RULES - environment variable. And since Qt 5.6, multiple rules can also be - separated by semicolons: + Logging rules can also be specified in a \c QT_LOGGING_RULES environment variable; + multiple rules can also be separated by semicolons: \snippet code/src_corelib_io_qloggingcategory.cpp 3 - Rules set by \l setFilterRules() take precedence over rules specified - in the QtProject configuration directory, and can, in turn, be - overwritten by rules from the configuration file specified by - \c QT_LOGGING_CONF, and rules set by \c QT_LOGGING_RULES. - - Order of evaluation: - \list - \li [QLibraryInfo::DataPath]/qtlogging.ini - \li QtProject/qtlogging.ini - \li \l setFilterRules() - \li \c QT_LOGGING_CONF - \li \c QT_LOGGING_RULES + Rules set by \l setFilterRules() take precedence over rules specified in the + QtProject configuration directory. In turn, these rules can be overwritten by those + from the configuration file specified by \c QT_LOGGING_CONF, and those set by + \c QT_LOGGING_RULES. + + The order of evaluation is as follows: + \list 1 + \li [QLibraryInfo::DataPath]/qtlogging.ini + \li QtProject/qtlogging.ini + \li \l setFilterRules() + \li \c QT_LOGGING_CONF + \li \c QT_LOGGING_RULES \endlist The \c QtProject/qtlogging.ini file is looked up in all directories returned - by QStandardPaths::GenericConfigLocation, e.g. + by QStandardPaths::GenericConfigLocation. - \list - \li on \macos and iOS: \c ~/Library/Preferences - \li on Unix: \c ~/.config, \c /etc/xdg - \li on Windows: \c %LOCALAPPDATA%, \c %ProgramData%, - \l QCoreApplication::applicationDirPath(), - QCoreApplication::applicationDirPath() + \c "/data" - \endlist - - Set the \c QT_LOGGING_DEBUG environment variable to see from where - logging rules are loaded. + Set the \c QT_LOGGING_DEBUG environment variable to find out where you logging + rules are loaded from. \section2 Installing a Custom Filter @@ -211,7 +202,7 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift) If \a category is \c{0}, the category name is changed to \c "default". - Note that \a category must be kept valid during the lifetime of this object. + \note \a category must be kept valid during the lifetime of this object. */ QLoggingCategory::QLoggingCategory(const char *category) : d(0), @@ -226,7 +217,7 @@ QLoggingCategory::QLoggingCategory(const char *category) If \a category is \c{0}, the category name is changed to \c "default". - Note that \a category must be kept valid during the lifetime of this object. + \note \a category must be kept valid during the lifetime of this object. \since 5.4 */ @@ -251,7 +242,7 @@ void QLoggingCategory::init(const char *category, QtMsgType severityLevel) } /*! - Destructs a QLoggingCategory object. + Destroys a QLoggingCategory object. */ QLoggingCategory::~QLoggingCategory() { @@ -268,24 +259,24 @@ QLoggingCategory::~QLoggingCategory() /*! \fn bool QLoggingCategory::isDebugEnabled() const - Returns \c true if debug messages should be shown for this category. - Returns \c false otherwise. + Returns \c true if debug messages should be shown for this category; + \c false otherwise. - \note The \l qCDebug() macro already does this check before executing any - code. However, calling this method may be useful to avoid - expensive generation of data that is only used for debug output. + \note The \l qCDebug() macro already does this check before running any + code. However, calling this method may be useful to avoid the + expensive generation of data for debug output only. */ /*! \fn bool QLoggingCategory::isInfoEnabled() const - Returns \c true if informational messages should be shown for this category. - Returns \c false otherwise. + Returns \c true if informational messages should be shown for this category; + \c false otherwise. \note The \l qCInfo() macro already does this check before executing any - code. However, calling this method may be useful to avoid - expensive generation of data that is only used for debug output. + code. However, calling this method may be useful to avoid the + expensive generation of data for debug output only. \since 5.5 */ @@ -294,28 +285,28 @@ QLoggingCategory::~QLoggingCategory() /*! \fn bool QLoggingCategory::isWarningEnabled() const - Returns \c true if warning messages should be shown for this category. - Returns \c false otherwise. + Returns \c true if warning messages should be shown for this category; + \c false otherwise. \note The \l qCWarning() macro already does this check before executing any - code. However, calling this method may be useful to avoid - expensive generation of data that is only used for debug output. + code. However, calling this method may be useful to avoid the + expensive generation of data for debug output only. */ /*! \fn bool QLoggingCategory::isCriticalEnabled() const - Returns \c true if critical messages should be shown for this category. - Returns \c false otherwise. + Returns \c true if critical messages should be shown for this category; + \c false otherwise. \note The \l qCCritical() macro already does this check before executing any - code. However, calling this method may be useful to avoid - expensive generation of data that is only used for debug output. + code. However, calling this method may be useful to avoid the + expensive generation of data for debug output only. */ /*! Returns \c true if a message of type \a msgtype for the category should be - shown. Returns \c false otherwise. + shown; \c false otherwise. */ bool QLoggingCategory::isEnabled(QtMsgType msgtype) const { @@ -332,11 +323,11 @@ bool QLoggingCategory::isEnabled(QtMsgType msgtype) const /*! Changes the message type \a type for the category to \a enable. - This method is meant to be used only from inside a filter - installed by \l installFilter(). See \l {Configuring Categories} for - an overview on how to configure categories globally. + This method is meant for use only from inside a filter installed with + \l installFilter(). For an overview on how to configure categories globally, + see \l {Configuring Categories}. - \note \c QtFatalMsg cannot be changed. It will always remain \c true. + \note \c QtFatalMsg cannot be changed; it will always remain \c true. */ void QLoggingCategory::setEnabled(QtMsgType type, bool enable) { @@ -359,28 +350,25 @@ void QLoggingCategory::setEnabled(QtMsgType type, bool enable) /*! \fn QLoggingCategory &QLoggingCategory::operator()() - Returns the object itself. This allows both a QLoggingCategory variable, and - a factory method returning a QLoggingCategory, to be used in \l qCDebug(), - \l qCWarning(), \l qCCritical() macros. + Returns the object itself. This allows for both: a QLoggingCategory variable, and + a factory method that returns a QLoggingCategory, to be used in \l qCDebug(), + \l qCWarning(), or \l qCCritical() macros. */ /*! \fn const QLoggingCategory &QLoggingCategory::operator()() const - Returns the object itself. This allows both a QLoggingCategory variable, and - a factory method returning a QLoggingCategory, to be used in \l qCDebug(), - \l qCWarning(), \l qCCritical() macros. + Returns the object itself. This allows for both: a QLoggingCategory variable, and + a factory method that returns a QLoggingCategory, to be used in \l qCDebug(), + \l qCWarning(), or \l qCCritical() macros. */ /*! - Returns a pointer to the global category \c "default" that - is used e.g. by qDebug(), qInfo(), qWarning(), qCritical(), qFatal(). + Returns a pointer to the global category \c "default" that is used, for + example, by qDebug(), qInfo(), qWarning(), qCritical(), or qFatal(). - \note The returned pointer may be null during destruction of - static objects. - - \note Ownership of the category is not transferred, do not - \c delete the returned pointer. + \note The pointer returned may be null during destruction of static objects. + Also, don't \c delete this pointer, as ownership of the category isn't transferred. */ QLoggingCategory *QLoggingCategory::defaultCategory() @@ -391,8 +379,7 @@ QLoggingCategory *QLoggingCategory::defaultCategory() /*! \typedef QLoggingCategory::CategoryFilter - This is a typedef for a pointer to a function with the following - signature: + This is a typedef for a pointer to a function with the following signature: \snippet qloggingcategory/main.cpp 20 @@ -408,14 +395,13 @@ QLoggingCategory *QLoggingCategory::defaultCategory() filter is free to change the respective category configuration with \l setEnabled(). - The filter might be called from different threads, but never concurrently. - The filter shall not call any static functions of QLoggingCategory. + When you define your filter, note that it can be called from different threads; but never + concurrently. This filter cannot call any static functions from QLoggingCategory. Example: \snippet qloggingcategory/main.cpp 21 - An alternative way of configuring the default filter is via - \l setFilterRules(). + Alternatively, you can configure the default filter via \l setFilterRules(). */ QLoggingCategory::CategoryFilter QLoggingCategory::installFilter(QLoggingCategory::CategoryFilter filter) @@ -425,15 +411,15 @@ QLoggingCategory::installFilter(QLoggingCategory::CategoryFilter filter) /*! Configures which categories and message types should be enabled through a - a set of \a rules. + set of \a rules. Example: \snippet qloggingcategory/main.cpp 2 \note The rules might be ignored if a custom category filter is installed - with \l installFilter(), or if the user defined \c QT_LOGGING_CONF or \c QT_LOGGING_RULES - environment variable. + with \l installFilter(), or if the user has defined the \c QT_LOGGING_CONF + or the \c QT_LOGGING_RULES environment variable. */ void QLoggingCategory::setFilterRules(const QString &rules) { @@ -446,7 +432,7 @@ void QLoggingCategory::setFilterRules(const QString &rules) \threadsafe \since 5.2 - Returns an output stream for debug messages in the logging category + Returns an output stream for debug messages in the logging category, \a category. The macro expands to code that checks whether @@ -457,8 +443,8 @@ void QLoggingCategory::setFilterRules(const QString &rules) \snippet qloggingcategory/main.cpp 10 - \note Arguments are not processed if debug output for the category is not - enabled, so do not rely on any side effects. + \note Arguments aren't processed if the debug output for that \a category is not + enabled, so don't rely on any side effects. \sa qDebug() */ @@ -469,16 +455,16 @@ void QLoggingCategory::setFilterRules(const QString &rules) \threadsafe \since 5.3 - Logs a debug message \a message in the logging category \a category. - \a message might contain place holders that are replaced by additional - arguments, similar to the C printf() function. + Logs a debug message, \a message, in the logging category, \a category. + \a message may contain place holders to be replaced by additional arguments, + similar to the C printf() function. Example: \snippet qloggingcategory/main.cpp 13 - \note Arguments might not be processed if debug output for the category is - not enabled, so do not rely on any side effects. + \note Arguments aren't processed if the debug output for that \a category is not + enabled, so don't rely on any side effects. \sa qDebug() */ @@ -489,7 +475,7 @@ void QLoggingCategory::setFilterRules(const QString &rules) \threadsafe \since 5.5 - Returns an output stream for informational messages in the logging category + Returns an output stream for informational messages in the logging category, \a category. The macro expands to code that checks whether @@ -500,8 +486,8 @@ void QLoggingCategory::setFilterRules(const QString &rules) \snippet qloggingcategory/main.cpp qcinfo_stream - \note Arguments are not processed if debug output for the category is not - enabled, so do not rely on any side effects. + \note If the debug output for a particular category isn't enabled, arguments + won't be processed, so don't rely on any side effects. \sa qInfo() */ @@ -512,16 +498,16 @@ void QLoggingCategory::setFilterRules(const QString &rules) \threadsafe \since 5.5 - Logs an informational message \a message in the logging category \a category. - \a message might contain place holders that are replaced by additional - arguments, similar to the C printf() function. + Logs an informational message, \a message, in the logging category, \a category. + \a message may contain place holders to be replaced by additional arguments, + similar to the C printf() function. Example: \snippet qloggingcategory/main.cpp qcinfo_printf - \note Arguments might not be processed if debug output for the category is - not enabled, so do not rely on any side effects. + \note If the debug output for a particular category isn't enabled, arguments + won't be processed, so don't rely on any side effects. \sa qInfo() */ @@ -532,7 +518,7 @@ void QLoggingCategory::setFilterRules(const QString &rules) \threadsafe \since 5.2 - Returns an output stream for warning messages in the logging category + Returns an output stream for warning messages in the logging category, \a category. The macro expands to code that checks whether @@ -543,8 +529,8 @@ void QLoggingCategory::setFilterRules(const QString &rules) \snippet qloggingcategory/main.cpp 11 - \note Arguments are not processed if warning output for the category is not - enabled, so do not rely on any side effects. + \note If the warning output for a particular category isn't enabled, arguments + won't be processed, so don't rely on any side effects. \sa qWarning() */ @@ -555,16 +541,16 @@ void QLoggingCategory::setFilterRules(const QString &rules) \threadsafe \since 5.3 - Logs a warning message \a message in the logging category \a category. - \a message might contain place holders that are replaced by additional - arguments, similar to the C printf() function. + Logs a warning message, \a message, in the logging category, \a category. + \a message may contain place holders to be replaced by additional arguments, + similar to the C printf() function. Example: \snippet qloggingcategory/main.cpp 14 - \note Arguments might not be processed if warning output for the category is - not enabled, so do not rely on any side effects. + \note If the warning output for a particular category isn't enabled, arguments + won't be processed, so don't rely on any side effects. \sa qWarning() */ @@ -575,7 +561,7 @@ void QLoggingCategory::setFilterRules(const QString &rules) \threadsafe \since 5.2 - Returns an output stream for critical messages in the logging category + Returns an output stream for critical messages in the logging category, \a category. The macro expands to code that checks whether @@ -586,8 +572,9 @@ void QLoggingCategory::setFilterRules(const QString &rules) \snippet qloggingcategory/main.cpp 12 - \note Arguments are not processed if critical output for the category is not - enabled, so do not rely on any side effects. + + \note If the critical output for a particular category isn't enabled, arguments + won't be processed, so don't rely on any side effects. \sa qCritical() */ @@ -598,16 +585,16 @@ void QLoggingCategory::setFilterRules(const QString &rules) \threadsafe \since 5.3 - Logs a critical message \a message in the logging category \a category. - \a message might contain place holders that are replaced by additional - arguments, similar to the C printf() function. + Logs a critical message, \a message, in the logging category, \a category. + \a message may contain place holders to be replaced by additional arguments, + similar to the C printf() function. Example: \snippet qloggingcategory/main.cpp 15 - \note Arguments might not be processed if critical output for the category - is not enabled, so do not rely on any side effects. + \note If the critical output for a particular category isn't enabled, arguments + won't be processed, so don't rely on any side effects. \sa qCritical() */ @@ -633,7 +620,7 @@ void QLoggingCategory::setFilterRules(const QString &rules) \a string identifier. By default, all message types are enabled. Only one translation unit in a library or executable can define a category - with a specific name. The implicitly defined QLoggingCategory object is + with a specific name. The implicitly-defined QLoggingCategory object is created on first use, in a thread-safe manner. This macro must be used outside of a class or method. @@ -650,7 +637,7 @@ void QLoggingCategory::setFilterRules(const QString &rules) and more severe are enabled, types with a lower severity are disabled. Only one translation unit in a library or executable can define a category - with a specific name. The implicitly defined QLoggingCategory object is + with a specific name. The implicitly-defined QLoggingCategory object is created on first use, in a thread-safe manner. This macro must be used outside of a class or method. It is only defined -- cgit v1.2.3