QGIS API Documentation 3.99.0-Master (a8f284845db)
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
56void QgsServerLogger::logMessage( const QString &message, const QString &tag, Qgis::MessageLevel level, Qgis::StringFormat format )
57{
58 ( void ) format;
59 logMessage( message, tag, level );
60}
61
63{
64 mLogLevel = level;
65}
66
67void QgsServerLogger::setLogFile( const QString &filename )
68{
69 mTextStream.flush();
70 mLogFile.close();
71 mLogFile.setFileName( filename );
72
73 if ( ( !filename.isEmpty() ) && mLogFile.open( QIODevice::Append ) )
74 {
75 mTextStream.setDevice( &mLogFile );
76 }
77}
78
80{
81 setLogFile();
82 mLogStderr = true;
83}
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition qgis.h:158
StringFormat
Format of log message.
Definition qgis.h:173
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