diff --git a/src/libtomahawk/database/TomahawkSqlQuery.cpp b/src/libtomahawk/database/TomahawkSqlQuery.cpp index faf832625..f014cd0c4 100644 --- a/src/libtomahawk/database/TomahawkSqlQuery.cpp +++ b/src/libtomahawk/database/TomahawkSqlQuery.cpp @@ -24,6 +24,7 @@ #include #define QUERY_THRESHOLD 60 +#define QUERY_ANALYZE 1 TomahawkSqlQuery::TomahawkSqlQuery() @@ -57,9 +58,14 @@ TomahawkSqlQuery::exec() showError(); int e = t.elapsed(); - if ( e >= QUERY_THRESHOLD ) - tLog() << "TomahawkSqlQuery (" << lastQuery() << ") finished in" << t.elapsed() << "ms"; - + bool log = ( e >= QUERY_THRESHOLD ); +#ifdef QUERY_ANALYZE + log = true; +#endif + + if ( log ) + tLog( LOGSQL ) << "TomahawkSqlQuery (" << t.elapsed() << "ms ):" << lastQuery(); + return ret; } diff --git a/src/libtomahawk/utils/Logger.cpp b/src/libtomahawk/utils/Logger.cpp index 4f4efd7f5..a34df872d 100644 --- a/src/libtomahawk/utils/Logger.cpp +++ b/src/libtomahawk/utils/Logger.cpp @@ -35,6 +35,7 @@ #define RELEASE_LEVEL_THRESHOLD 0 #define DEBUG_LEVEL_THRESHOLD LOGEXTRA +#define LOG_SQL_QUERIES 1 using namespace std; ofstream logfile; @@ -65,9 +66,19 @@ log( const char *msg, unsigned int debugLevel, bool toDisk = true ) if ( debugLevel > DEBUG_LEVEL_THRESHOLD ) toDisk = false; #endif + + #ifdef LOG_SQL_QUERIES + if ( debugLevel == LOGSQL ) + toDisk = true; + #endif if ( toDisk || (int)debugLevel <= s_threshold ) { + #ifdef LOG_SQL_QUERIES + if ( debugLevel == LOGSQL ) + logfile << "TSQLQUERY: "; + #endif + logfile << QTime::currentTime().toString().toAscii().data() << " [" << QString::number( debugLevel ).toAscii().data() << "]: " << msg << endl; logfile.flush(); } diff --git a/src/libtomahawk/utils/Logger.h b/src/libtomahawk/utils/Logger.h index a95fee6ef..6c1f69fdb 100644 --- a/src/libtomahawk/utils/Logger.h +++ b/src/libtomahawk/utils/Logger.h @@ -24,6 +24,13 @@ #include "DllMacro.h" +#define LOGDEBUG 1 +#define LOGINFO 2 +#define LOGEXTRA 5 +#define LOGVERBOSE 8 +#define LOGTHIRDPARTY 9 +#define LOGSQL 10 + namespace Logger { class DLLEXPORT TLog : public QDebug @@ -40,7 +47,15 @@ namespace Logger class DLLEXPORT TDebug : public TLog { public: - TDebug( unsigned int debugLevel = 1 ) : TLog( debugLevel ) + TDebug( unsigned int debugLevel = LOGDEBUG ) : TLog( debugLevel ) + { + } + }; + + class DLLEXPORT TSqlLog : public TLog + { + public: + TSqlLog() : TLog( LOGSQL ) { } }; @@ -51,11 +66,6 @@ namespace Logger #define tLog Logger::TLog #define tDebug Logger::TDebug - -#define LOGDEBUG 1 -#define LOGINFO 2 -#define LOGEXTRA 5 -#define LOGVERBOSE 8 -#define LOGTHIRDPARTY 9 +#define tSqlLog Logger::TSqlLog #endif // TOMAHAWK_LOGGER_H