QgsLogger class

QgsLogger is a class to print debug/warning/error messages to the console.

Contents

The advantage of this class over iostream & co. is that the output can be controlled with environment variables: QGIS_DEBUG is an int describing what debug messages are written to the console. If the debug level of a message is <= QGIS_DEBUG, the message is written to the console. It the variable QGIS_DEBUG is not defined, it defaults to 1 for debug mode and to 0 for release mode QGIS_DEBUG_FILE may contain a file name. Only the messages from this file are printed (provided they have the right debuglevel). If QGIS_DEBUG_FILE is not set, messages from all files are printed

QGIS_LOG_FILE may contain a file name. If set, all messages will be appended to this file rather than to stdout.

Public static functions

static void critical(const QString& msg)
Goes to qCritical.
static void debug(const QString& msg, int debuglevel = 1, const char* file = nullptr, const char* function = nullptr, int line = -1)
Goes to qDebug.
static void debug(const QString& var, int val, int debuglevel = 1, const char* file = nullptr, const char* function = nullptr, int line = -1)
Similar to the previous method, but prints a variable int-value pair.
static void debug(const QString& var, double val, int debuglevel = 1, const char* file = nullptr, const char* function = nullptr, int line = -1)
Similar to the previous method, but prints a variable double-value pair.
template<typename T>
static void debug(const QString& var, T val, const char* file = nullptr, const char* function = nullptr, int line = -1, int debuglevel = 1)
Prints out a variable/value pair for types with overloaded operator<<.
static auto debugLevel() -> int
Reads the environment variable QGIS_DEBUG and converts it to int.
static void fatal(const QString& msg)
Goes to qFatal.
static auto logFile() -> const QString
Reads the environment variable QGIS_LOG_FILE.
static void logMessageToFile(const QString& message)
Logs the message passed in to the logfile defined in QGIS_LOG_FILE if any. *.
static void warning(const QString& msg)
Goes to qWarning.

Function documentation

static void QgsLogger::debug(const QString& msg, int debuglevel = 1, const char* file = nullptr, const char* function = nullptr, int line = -1)

Goes to qDebug.

Parameters
msg the message to be printed
debuglevel
file file name where the message comes from
function function where the message comes from
line place in file where the message comes from

static void QgsLogger::debug(const QString& var, double val, int debuglevel = 1, const char* file = nullptr, const char* function = nullptr, int line = -1)

Similar to the previous method, but prints a variable double-value pair.

template<typename T>
static void QgsLogger::debug(const QString& var, T val, const char* file = nullptr, const char* function = nullptr, int line = -1, int debuglevel = 1)

Prints out a variable/value pair for types with overloaded operator<<.

static int QgsLogger::debugLevel()

Reads the environment variable QGIS_DEBUG and converts it to int.

If QGIS_DEBUG is not set, the function returns 1 if QGISDEBUG is defined and 0 if not

static const QString QgsLogger::logFile()

Reads the environment variable QGIS_LOG_FILE.

Returns NULL if the variable is not set, otherwise returns a file name for writing log messages to.