Skip to content
Snippets Groups Projects
Commit 5075dc26 authored by stefan's avatar stefan
Browse files

Logging, difference type of logging

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2604 5a81b35b-ba03-0410-adc8-b2c5c5119f08
parent ccec35bd
No related branches found
No related tags found
No related merge requests found
......@@ -70,17 +70,17 @@ private:
#define PUSH_VERBOSITY(n) ::ost::Logger::Instance().PushVerbosityLevel(n)
#define POP_VERBOSITY(n) ::ost::Logger::Instance().PopVerbosityLevel()
#define LOG_ERROR(m) ::ost::Logger::Instance()(::ost::Logger::QUIET) << m;
#define LOGN_ERROR(m) ::ost::Logger::Instance()(::ost::Logger::QUIET) << m << std::endl;
#define LOG_ERROR(m) if(true){std::stringstream tmp_stream__;tmp_stream__ << m ;::ost::Logger::Instance()(::ost::Logger::QUIET)->LogMessage(tmp_stream__.str());}
#define LOGN_ERROR(m) if(true){std::stringstream tmp_stream__;tmp_stream__ << m << std::endl;::ost::Logger::Instance()(::ost::Logger::QUIET)->LogMessage(tmp_stream__.str());}
#define LOG_MESSAGE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::NORMAL) {(::ost::Logger::Instance()(::ost::Logger::NORMAL)) << m ;}
#define LOGN_MESSAGE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::NORMAL) {(::ost::Logger::Instance()(::ost::Logger::NORMAL)) << m << std::endl;}
#define LOG_MESSAGE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::NORMAL) {std::stringstream tmp_stream__;tmp_stream__ << m ;::ost::Logger::Instance()(::ost::Logger::NORMAL)->LogMessage(tmp_stream__.str(),::ost::Logger::NORMAL);}
#define LOGN_MESSAGE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::NORMAL) {std::stringstream tmp_stream__; tmp_stream__ << m <<std::endl;::ost::Logger::Instance()(::ost::Logger::NORMAL)->LogMessage(tmp_stream__.str(),::ost::Logger::NORMAL);}
#define LOG_VERBOSE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::VERBOSE) {(::ost::Logger::Instance()(::ost::Logger::VERBOSE)) << m ;}
#define LOGN_VERBOSE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::VERBOSE) {(::ost::Logger::Instance()(::ost::Logger::VERBOSE)) << m << std::endl;}
#define LOG_VERBOSE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::VERBOSE) {std::stringstream tmp_stream__;tmp_stream__ << m ;::ost::Logger::Instance()(::ost::Logger::VERBOSE)->LogMessage(tmp_stream__.str(),::ost::Logger::VERBOSE);}
#define LOGN_VERBOSE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::VERBOSE) {std::stringstream tmp_stream__; tmp_stream__ << m <<std::endl;::ost::Logger::Instance()(::ost::Logger::VERBOSE)->LogMessage(tmp_stream__.str(),::ost::Logger::VERBOSE);}
#define LOG_DEBUG(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m ;}
#define LOGN_DEBUG(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m << std::endl;}
#define LOG_DEBUG(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {std::stringstream tmp_stream__;tmp_stream__ << m ;::ost::Logger::Instance()(::ost::Logger::DEBUG)->LogMessage(tmp_stream__.str(),::ost::Logger::DEBUG);}
#define LOGN_DEBUG(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {std::stringstream tmp_stream__; tmp_stream__ << m <<std::endl;::ost::Logger::Instance()(::ost::Logger::DEBUG)->LogMessage(tmp_stream__.str(),::ost::Logger::DEBUG);}
#ifdef NDEBUG
......@@ -92,11 +92,11 @@ private:
#else
# define LOG_DUMP(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DUMP) {(::ost::Logger::Instance()(::ost::Logger::DUMP)) << m ;}
# define LOGN_DUMP(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DUMP) {(::ost::Logger::Instance()(::ost::Logger::DUMP)) << m << std::endl;}
# define LOG_DUMP(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DUMP) {std::stringstream tmp_stream__;tmp_stream__ << m ;::ost::Logger::Instance()(::ost::Logger::DUMP)->LogMessage(tmp_stream__.str(),::ost::Logger::DUMP);}
# define LOGN_DUMP(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DUMP) {std::stringstream tmp_stream__; tmp_stream__ << m <<std::endl;::ost::Logger::Instance()(::ost::Logger::DUMP)->LogMessage(tmp_stream__.str(),::ost::Logger::DUMP);}
# define LOG_TRACE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::TRACE) {(::ost::Logger::Instance()(::ost::Logger::TRACE)) << m ;}
# define LOGN_TRACE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::TRACE) {(::ost::Logger::Instance()(::ost::Logger::TRACE)) << m << std::endl;}
# define LOG_TRACE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::TRACE) {std::stringstream tmp_stream__;tmp_stream__ << m ;::ost::Logger::Instance()(::ost::Logger::TRACE)->LogMessage(tmp_stream__.str(),::ost::Logger::TRACE);}
# define LOGN_TRACE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::TRACE) {std::stringstream tmp_stream__; tmp_stream__ << m <<std::endl;::ost::Logger::Instance()(::ost::Logger::TRACE)->LogMessage(tmp_stream__.str(),::ost::Logger::TRACE);}
#endif
......
......@@ -16,6 +16,7 @@
// along with this library; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
//------------------------------------------------------------------------------
#include <ost/log.hh>
#include <ost/log_sink.hh>
#include <iostream>
namespace ost {
......@@ -30,6 +31,7 @@ bool ObservableLogSink::AddObserver(LogObserverPtr& observer){
}
return false;
}
bool ObservableLogSink::RemoveObserver(LogObserverPtr& observer){
std::vector<LogObserverPtr>::iterator found = std::find( this->observers_.begin(), this->observers_.end(), observer);
if( found != this->observers_.end() ){
......@@ -39,11 +41,11 @@ bool ObservableLogSink::RemoveObserver(LogObserverPtr& observer){
return false;
}
void ObservableLogSink::LogMessage(const String& message){
void ObservableLogSink::LogMessage(const String& message, int severity){
std::vector<LogObserverPtr>::const_iterator observers_it = this->observers_.begin() ;
while( observers_it != this->observers_.end() )
{
( *observers_it )->LogMessage(message) ;
( *observers_it )->LogMessage(message, severity);
observers_it++;
}
}
......
......@@ -42,7 +42,7 @@ namespace {
class DLLEXPORT_OST_BASE LogSink {
public:
virtual void LogMessage(const String& message)=0;
virtual void LogMessage(const String& message, int severity = 0)=0;
};
typedef boost::shared_ptr<LogSink> LogSinkPtr;
......@@ -50,7 +50,7 @@ typedef boost::shared_ptr<LogSink> LogSinkPtr;
class DLLEXPORT_OST_BASE NullLogSink : public LogSink {
public:
NullLogSink():null_(new DevNull()){}
virtual void LogMessage(const String& message){null_ << message;}
virtual void LogMessage(const String& message, int severity){null_ << message;}
private:
std::ostream null_;
......@@ -60,7 +60,7 @@ private:
class DLLEXPORT_OST_BASE StdLogSink : public LogSink {
public:
StdLogSink(std::ostream& stream):stream_(stream){}
virtual void LogMessage(const String& message){
virtual void LogMessage(const String& message, int severity){
stream_ << message;
}
......@@ -70,7 +70,7 @@ private:
class DLLEXPORT_OST_BASE LogObserver {
public:
virtual void LogMessage(const String& message)=0;
virtual void LogMessage(const String& message, int severity)=0;
};
typedef boost::shared_ptr<LogObserver> LogObserverPtr;
......@@ -79,7 +79,7 @@ public:
ObservableLogSink();
bool AddObserver(LogObserverPtr& observer);
bool RemoveObserver(LogObserverPtr& observer);
void LogMessage(const String& message);
void LogMessage(const String& message, int severity);
private:
std::vector<LogObserverPtr> observers_;
};
......
......@@ -36,15 +36,48 @@ LogReader::LogReader(QObject* parent) :
olsp->AddObserver(losp);
}
void LogReader::LogMessage(const String& message){
void LogReader::LogMessage(const String& message, int severity){
if(this->parent()){
if(InfoWidget* info_widget = qobject_cast<InfoWidget*>(this->parent())){
info_widget->LogMessage(message.c_str());
QString q_message(message.c_str());
if(q_message.endsWith("\n")){
q_message.remove(q_message.size()-1,q_message.size()-1);
if(!log_cache_.contains(severity)){
info_widget->LogMessage(q_message,GetIconForSeverity(severity));
}
else{
info_widget->LogMessage(log_cache_[severity]+q_message,GetIconForSeverity(severity));
log_cache_.remove(severity);
}
}
else{
if(!log_cache_.contains(severity)){
log_cache_[severity] = message.c_str();
}
else{
log_cache_[severity].append(message.c_str());
}
}
}
}
}
LogReader::~LogReader() {}
QMessageBox::Icon LogReader::GetIconForSeverity(int severity){
switch (severity) {
case 1:
return QMessageBox::Warning;
case 0:
return QMessageBox::Critical;
default :
return QMessageBox::Information;
}
}
LogReader::~LogReader() {
ost::Logger& logger = ost::Logger::Instance();
LogSinkPtr olsp = LogSinkPtr(new StdLogSink(std::cerr));
logger.SetSink(olsp);
}
}
} // ns
......@@ -20,6 +20,8 @@
#define OST_GUI_INFO_WIDGET_LOG_READER_HH
#include <QObject>
#include <QMap>
#include <QMessageBox>
#include <ost/log_sink.hh>
......@@ -38,9 +40,11 @@ public:
LogReader(QObject* parent=NULL);
~LogReader();
public:
void LogMessage(const String& message);
void LogMessage(const String& message, int severity);
private:
QMap<int, QString> log_cache_;
QMessageBox::Icon GetIconForSeverity(int severity);
};
}} // ns
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment