Quantum GIS API Documentation
1.8
|
00001 /*************************************************************************** 00002 qgsmessagelog.h - interface for logging messages 00003 ---------------------- 00004 begin : October 2011 00005 copyright : (C) 2011 by Juergen E. Fischer 00006 email : jef at norbit dot de 00007 *************************************************************************** 00008 * * 00009 * This program is free software; you can redistribute it and/or modify * 00010 * it under the terms of the GNU General Public License as published by * 00011 * the Free Software Foundation; either version 2 of the License, or * 00012 * (at your option) any later version. * 00013 * * 00014 ***************************************************************************/ 00015 00016 #include "qgsmessagelog.h" 00017 #include <qgslogger.h> 00018 #include <QDateTime> 00019 #include <iostream> 00020 00021 class QgsMessageLogConsole; 00022 00023 QgsMessageLog *QgsMessageLog::sInstance = 0; 00024 00025 QgsMessageLog::QgsMessageLog() 00026 : QObject() 00027 { 00028 sInstance = this; 00029 } 00030 00031 QgsMessageLog *QgsMessageLog::instance() 00032 { 00033 if ( !sInstance ) 00034 sInstance = new QgsMessageLog(); 00035 00036 return sInstance; 00037 } 00038 00039 void QgsMessageLog::logMessage( QString message, QString tag, int level ) 00040 { 00041 QgsDebugMsg( QString( "%1 %2[%3] %4" ).arg( QDateTime::currentDateTime().toString( Qt::ISODate ) ).arg( tag ).arg( level ).arg( message ) ); 00042 00043 QgsMessageLog::instance()->emitMessage( message, tag, level ); 00044 } 00045 00046 void QgsMessageLog::emitMessage( QString message, QString tag, int level ) 00047 { 00048 emit messageReceived( message, tag, level ); 00049 } 00050 00051 QgsMessageLogConsole::QgsMessageLogConsole() 00052 : QObject( QgsMessageLog::instance() ) 00053 { 00054 connect( QgsMessageLog::instance(), SIGNAL( messageReceived( QString, QString, int ) ), 00055 this, SLOT( logMessage( QString, QString, tag ) ) ); 00056 } 00057 00058 void QgsMessageLogConsole::logMessage( QString message, QString tag, int level ) 00059 { 00060 std::cout << tag.toLocal8Bit().data() << "[" << level << "]: " << message.toLocal8Bit().data() << std::endl; 00061 } 00062