QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsserverlogger.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsserverlogger.cpp
3 -------------------
4 begin : May 5, 2014
5 copyright : (C) 2014 by Marco Hugentobler
6 email : marco dot hugentobler at sourcepole dot ch
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#include "qgsserverlogger.h"
19
20#include "moc_qgsserverlogger.cpp"
21
22QgsServerLogger *QgsServerLogger::sInstance = nullptr;
23
25{
26 if ( !sInstance )
27 {
28 sInstance = new QgsServerLogger();
29 }
30 return sInstance;
31}
32
37
38void QgsServerLogger::logMessage( const QString &message, const QString &tag, Qgis::MessageLevel level )
39{
40 if ( mLogLevel > level )
41 {
42 return;
43 }
44 if ( mLogFile.isOpen() )
45 {
46 const QString formattedMessage = formatLogMessage( message, tag, level );
47 mTextStream << formattedMessage;
48 mTextStream.flush();
49 }
50 else if ( mLogStderr )
51 {
52 QgsMessageLogConsole::logMessage( message, tag, level );
53 }
54}
55
57{
58 mLogLevel = level;
59}
60
61void QgsServerLogger::setLogFile( const QString &filename )
62{
63 mTextStream.flush();
64 mLogFile.close();
65 mLogFile.setFileName( filename );
66
67 if ( ( !filename.isEmpty() ) && mLogFile.open( QIODevice::Append ) )
68 {
69 mTextStream.setDevice( &mLogFile );
70 }
71}
72
74{
75 setLogFile();
76 mLogStderr = true;
77}
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition qgis.h:156
QString formatLogMessage(const QString &message, const QString &tag, Qgis::MessageLevel level=Qgis::MessageLevel::Info) const
Formats a log message.
QgsMessageLogConsole()
Constructor for QgsMessageLogConsole.
virtual void logMessage(const QString &message, const QString &tag, Qgis::MessageLevel level)
Logs a message to stderr.
Writes message log into server log files.
static QgsServerLogger * instance()
Gets the singleton instance.
void setLogLevel(Qgis::MessageLevel level)
Set the current log level.
void setLogFile(const QString &filename=QString())
Set the current log file.
void setLogStderr()
Activates logging to stderr.
void logMessage(const QString &message, const QString &tag, Qgis::MessageLevel level) override
Log a message from the server context.