fix(QgsMessageLog): display real caller data instead of logMessage call to QgsDebugMsgLevel

This commit is contained in:
bdm-oslandia 2025-01-24 16:07:12 +01:00 committed by Loïc Bartoletti
parent 2bef21df9f
commit c89d3f56a1
5 changed files with 16 additions and 6 deletions

View File

@ -32,7 +32,8 @@ window for the user.
QgsMessageLog();
static void logMessage( const QString &message, const QString &tag = QString(), Qgis::MessageLevel level = Qgis::MessageLevel::Warning, bool notifyUser = true );
static void logMessage( const QString &message, const QString &tag = QString(), Qgis::MessageLevel level = Qgis::MessageLevel::Warning, bool notifyUser = true,
const char *file = __builtin_FILE(), const char *function = __builtin_FUNCTION(), int line = __builtin_LINE() );
%Docstring
Adds a ``message`` to the log instance (and creates it if necessary).

View File

@ -32,7 +32,8 @@ window for the user.
QgsMessageLog();
static void logMessage( const QString &message, const QString &tag = QString(), Qgis::MessageLevel level = Qgis::MessageLevel::Warning, bool notifyUser = true );
static void logMessage( const QString &message, const QString &tag = QString(), Qgis::MessageLevel level = Qgis::MessageLevel::Warning, bool notifyUser = true,
const char *file = __builtin_FILE(), const char *function = __builtin_FUNCTION(), int line = __builtin_LINE() );
%Docstring
Adds a ``message`` to the log instance (and creates it if necessary).

View File

@ -32,11 +32,15 @@ class QFile;
#ifdef QGISDEBUG
#define QgsDebugError(str) QgsLogger::debug(QString(str), 0, __FILE__, __FUNCTION__, __LINE__)
#define QgsDebugMsgLevel(str, level) if ( level <= QgsLogger::debugLevel() ) { QgsLogger::debug(QString(str), (level), __FILE__, __FUNCTION__, __LINE__); }(void)(0)
#define QgsDebugErrorLoc(str, file, func, line) QgsLogger::debug(QString(str), 0, file, func, line)
#define QgsDebugMsgLevelLoc(str, level, file, func, line) if ( level <= QgsLogger::debugLevel() ) { QgsLogger::debug(QString(str), (level), file, func, line); }(void)(0)
#define QgsDebugCall QgsScopeLogger _qgsScopeLogger(__FILE__, __FUNCTION__, __LINE__)
#else
#define QgsDebugCall do {} while(false)
#define QgsDebugError(str) do {} while(false)
#define QgsDebugMsgLevel(str, level) do {} while(false)
#define QgsDebugErrorLoc(str, file, func, line) do {} while(false)
#define QgsDebugMsgLevelLoc(str, level, file, func, line) do {} while(false)
#endif
/**

View File

@ -25,19 +25,22 @@
class QgsMessageLogConsole;
void QgsMessageLog::logMessage( const QString &message, const QString &tag, Qgis::MessageLevel level, bool notifyUser )
void QgsMessageLog::logMessage( const QString &message, const QString &tag, Qgis::MessageLevel level, bool notifyUser,
const char *file, const char *function, int line )
{
switch ( level )
{
case Qgis::MessageLevel::Info:
case Qgis::MessageLevel::Success:
case Qgis::MessageLevel::NoLevel:
QgsDebugMsgLevel( QStringLiteral( "%1 %2[%3] %4" ).arg( QDateTime::currentDateTime().toString( Qt::ISODate ), tag ).arg( static_cast< int >( level ) ).arg( message ), 1 );
QgsDebugMsgLevelLoc( QStringLiteral( "%1 %2[%3] %4" ).arg( QDateTime::currentDateTime().toString( Qt::ISODate ), tag ).arg( static_cast< int >( level ) ).arg( message ),
1, file, function, line );
break;
case Qgis::MessageLevel::Warning:
case Qgis::MessageLevel::Critical:
QgsDebugError( QStringLiteral( "%1 %2[%3] %4" ).arg( QDateTime::currentDateTime().toString( Qt::ISODate ), tag ).arg( static_cast< int >( level ) ).arg( message ) );
QgsDebugErrorLoc( QStringLiteral( "%1 %2[%3] %4" ).arg( QDateTime::currentDateTime().toString( Qt::ISODate ), tag ).arg( static_cast< int >( level ) ).arg( message ),
file, function, line );
break;
}

View File

@ -51,7 +51,8 @@ class CORE_EXPORT QgsMessageLog : public QObject
* If it is FALSE, the message should appear in logs silently. Note that log viewer implementations may
* only respect notification hints for certain message levels.
*/
static void logMessage( const QString &message, const QString &tag = QString(), Qgis::MessageLevel level = Qgis::MessageLevel::Warning, bool notifyUser = true );
static void logMessage( const QString &message, const QString &tag = QString(), Qgis::MessageLevel level = Qgis::MessageLevel::Warning, bool notifyUser = true,
const char *file = __builtin_FILE(), const char *function = __builtin_FUNCTION(), int line = __builtin_LINE() );
signals: