Quantum GIS API Documentation  1.8
src/core/qgsmessagelog.cpp
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines