Files
2023-Webservices_And_Applic…/Applications/qModMaster/3rdparty/QsLog/QsLogReadme.txt

35 lines
1.8 KiB
Plaintext

QsLog - the simple Qt logger
QsLog is an easy to use logger that is based on Qt's QDebug class.
Features
Six logging levels (from trace to fatal)
Logging level threshold configurable at runtime.
Minimum overhead when logging is turned off.
Supports multiple destinations, comes with file and debug destinations.
Thread-safe
Supports logging of common Qt types out of the box.
Small dependency: just drop it in your project directly.
Usage
Include QsLog.h. Include QsLogDest.h only where you create/add destinations.
Get the instance of the logger by calling QsLogging::Logger::instance();
Optionally set the logging level. Info is default.
Create as many destinations as you want by using the QsLogging::DestinationFactory.
Add the destinations to the logger instance by calling addDestination.
Disabling logging
Sometimes it's necessary to turn off logging. This can be done in several ways:
globally, at compile time, by enabling the QS_LOG_DISABLE macro in the supplied .pri file.
globally, at run time, by setting the log level to "OffLevel".
per file, at compile time, by including QsLogDisableForThisFile.h in the target file.
Thread safety
The Qt docs say: A thread-safe function can be called simultaneously from multiple threads, even when the invocations use shared data, because all references to the shared data are serialized. A reentrant function can also be called simultaneously from multiple threads, but only if each invocation uses its own data.
Since sending the log message to the destinations is protected by a mutex, the logging macros are thread-safe provided that the log has been initialized - i.e: instance() has been called. The instance function and the setup functions (e.g: setLoggingLevel, addDestination) are NOT thread-safe and are NOT reentrant.