mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-17 00:04:02 -04:00
[FEATURE][needs-doc] Introduce QGIS_SERVER_LOG_STDERR and deprecate file logging
This commit is contained in:
parent
b16aa15f06
commit
5b808f6a22
@ -47,9 +47,16 @@ Set the current log level
|
|||||||
.. versionadded:: 3.0
|
.. versionadded:: 3.0
|
||||||
%End
|
%End
|
||||||
|
|
||||||
void setLogFile( const QString &f );
|
void setLogFile( const QString &filename = QString() );
|
||||||
%Docstring
|
%Docstring
|
||||||
Set the current log file
|
Set the current log file
|
||||||
|
%End
|
||||||
|
|
||||||
|
void setLogStderr();
|
||||||
|
%Docstring
|
||||||
|
Activates logging to stderr.
|
||||||
|
|
||||||
|
.. versionadded:: 3.4.
|
||||||
%End
|
%End
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -94,6 +94,15 @@ Returns the QGS project file to use.
|
|||||||
Returns the log file.
|
Returns the log file.
|
||||||
|
|
||||||
:return: the path of the log file or an empty string if none is defined.
|
:return: the path of the log file or an empty string if none is defined.
|
||||||
|
%End
|
||||||
|
|
||||||
|
bool logStderr() const;
|
||||||
|
%Docstring
|
||||||
|
Returns whether logging to stderr is activated.
|
||||||
|
|
||||||
|
:return: true if logging to stderr is activated, false otherwise.
|
||||||
|
|
||||||
|
.. versionadded:: 3.4
|
||||||
%End
|
%End
|
||||||
|
|
||||||
qint64 cacheSize() const;
|
qint64 cacheSize() const;
|
||||||
|
@ -186,7 +186,14 @@ bool QgsServer::init()
|
|||||||
// init and configure logger
|
// init and configure logger
|
||||||
QgsServerLogger::instance();
|
QgsServerLogger::instance();
|
||||||
QgsServerLogger::instance()->setLogLevel( sSettings.logLevel() );
|
QgsServerLogger::instance()->setLogLevel( sSettings.logLevel() );
|
||||||
QgsServerLogger::instance()->setLogFile( sSettings.logFile() );
|
if ( ! sSettings.logFile().isEmpty() )
|
||||||
|
{
|
||||||
|
QgsServerLogger::instance()->setLogFile( sSettings.logFile() );
|
||||||
|
}
|
||||||
|
else if ( sSettings.logStderr() )
|
||||||
|
{
|
||||||
|
QgsServerLogger::instance()->setLogStderr();
|
||||||
|
}
|
||||||
|
|
||||||
// log settings currently used
|
// log settings currently used
|
||||||
sSettings.logSummary();
|
sSettings.logSummary();
|
||||||
|
@ -52,7 +52,7 @@ void QgsServerLogger::logMessage( const QString &message, const QString &tag, Qg
|
|||||||
mTextStream << formattedMessage;
|
mTextStream << formattedMessage;
|
||||||
mTextStream.flush();
|
mTextStream.flush();
|
||||||
}
|
}
|
||||||
else if ( QString::compare( mLogFile.fileName(), QStringLiteral( "stderr" ), Qt::CaseInsensitive ) == 0 )
|
else if ( mLogStderr )
|
||||||
{
|
{
|
||||||
QgsMessageLogConsole::logMessage( message, tag, level );
|
QgsMessageLogConsole::logMessage( message, tag, level );
|
||||||
}
|
}
|
||||||
@ -63,17 +63,20 @@ void QgsServerLogger::setLogLevel( const Qgis::MessageLevel level )
|
|||||||
mLogLevel = level;
|
mLogLevel = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QgsServerLogger::setLogFile( const QString &f )
|
void QgsServerLogger::setLogFile( const QString &filename )
|
||||||
{
|
{
|
||||||
mTextStream.flush();
|
mTextStream.flush();
|
||||||
mLogFile.close();
|
mLogFile.close();
|
||||||
|
mLogFile.setFileName( filename );
|
||||||
|
|
||||||
mLogFile.setFileName( f );
|
if ( ( ! filename.isEmpty() ) && mLogFile.open( QIODevice::Append ) )
|
||||||
|
|
||||||
if ( ( ! f.isEmpty() ) &&
|
|
||||||
QString::compare( f, QStringLiteral( "stderr" ), Qt::CaseInsensitive ) != 0 &&
|
|
||||||
mLogFile.open( QIODevice::Append ) )
|
|
||||||
{
|
{
|
||||||
mTextStream.setDevice( &mLogFile );
|
mTextStream.setDevice( &mLogFile );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QgsServerLogger::setLogStderr()
|
||||||
|
{
|
||||||
|
setLogFile();
|
||||||
|
mLogStderr = true;
|
||||||
|
}
|
||||||
|
@ -59,7 +59,13 @@ class SERVER_EXPORT QgsServerLogger : public QgsMessageLogConsole
|
|||||||
/**
|
/**
|
||||||
* Set the current log file
|
* Set the current log file
|
||||||
*/
|
*/
|
||||||
void setLogFile( const QString &f );
|
void setLogFile( const QString &filename = QString() );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activates logging to stderr.
|
||||||
|
* \since QGIS 3.4.
|
||||||
|
*/
|
||||||
|
void setLogStderr();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
@ -79,6 +85,7 @@ class SERVER_EXPORT QgsServerLogger : public QgsMessageLogConsole
|
|||||||
static QgsServerLogger *sInstance;
|
static QgsServerLogger *sInstance;
|
||||||
|
|
||||||
QFile mLogFile;
|
QFile mLogFile;
|
||||||
|
bool mLogStderr = false;
|
||||||
QTextStream mTextStream;
|
QTextStream mTextStream;
|
||||||
Qgis::MessageLevel mLogLevel = Qgis::None;
|
Qgis::MessageLevel mLogLevel = Qgis::None;
|
||||||
};
|
};
|
||||||
|
@ -87,6 +87,17 @@ void QgsServerSettings::initSettings()
|
|||||||
};
|
};
|
||||||
mSettings[ sLogFile.envVar ] = sLogFile;
|
mSettings[ sLogFile.envVar ] = sLogFile;
|
||||||
|
|
||||||
|
// log to stderr
|
||||||
|
const Setting sLogStderr = { QgsServerSettingsEnv::QGIS_SERVER_LOG_STDERR,
|
||||||
|
QgsServerSettingsEnv::DEFAULT_VALUE,
|
||||||
|
"Activate/Deactivate logging to stderr",
|
||||||
|
"",
|
||||||
|
QVariant::Bool,
|
||||||
|
QVariant( false ),
|
||||||
|
QVariant()
|
||||||
|
};
|
||||||
|
mSettings[ sLogStderr.envVar ] = sLogStderr;
|
||||||
|
|
||||||
// project file
|
// project file
|
||||||
const Setting sProject = { QgsServerSettingsEnv::QGIS_PROJECT_FILE,
|
const Setting sProject = { QgsServerSettingsEnv::QGIS_PROJECT_FILE,
|
||||||
QgsServerSettingsEnv::DEFAULT_VALUE,
|
QgsServerSettingsEnv::DEFAULT_VALUE,
|
||||||
@ -281,6 +292,11 @@ QString QgsServerSettings::logFile() const
|
|||||||
return value( QgsServerSettingsEnv::QGIS_SERVER_LOG_FILE ).toString();
|
return value( QgsServerSettingsEnv::QGIS_SERVER_LOG_FILE ).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QgsServerSettings::logStderr() const
|
||||||
|
{
|
||||||
|
return value( QgsServerSettingsEnv::QGIS_SERVER_LOG_STDERR ).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
Qgis::MessageLevel QgsServerSettings::logLevel() const
|
Qgis::MessageLevel QgsServerSettings::logLevel() const
|
||||||
{
|
{
|
||||||
return static_cast<Qgis::MessageLevel>( value( QgsServerSettingsEnv::QGIS_SERVER_LOG_LEVEL ).toInt() );
|
return static_cast<Qgis::MessageLevel>( value( QgsServerSettingsEnv::QGIS_SERVER_LOG_LEVEL ).toInt() );
|
||||||
|
@ -56,6 +56,7 @@ class SERVER_EXPORT QgsServerSettingsEnv : public QObject
|
|||||||
QGIS_SERVER_MAX_THREADS,
|
QGIS_SERVER_MAX_THREADS,
|
||||||
QGIS_SERVER_LOG_LEVEL,
|
QGIS_SERVER_LOG_LEVEL,
|
||||||
QGIS_SERVER_LOG_FILE,
|
QGIS_SERVER_LOG_FILE,
|
||||||
|
QGIS_SERVER_LOG_STDERR,
|
||||||
QGIS_PROJECT_FILE,
|
QGIS_PROJECT_FILE,
|
||||||
MAX_CACHE_LAYERS,
|
MAX_CACHE_LAYERS,
|
||||||
QGIS_SERVER_CACHE_DIRECTORY,
|
QGIS_SERVER_CACHE_DIRECTORY,
|
||||||
@ -148,6 +149,13 @@ class SERVER_EXPORT QgsServerSettings
|
|||||||
*/
|
*/
|
||||||
QString logFile() const;
|
QString logFile() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether logging to stderr is activated.
|
||||||
|
* \returns true if logging to stderr is activated, false otherwise.
|
||||||
|
* \since QGIS 3.4
|
||||||
|
*/
|
||||||
|
bool logStderr() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the cache size.
|
* Returns the cache size.
|
||||||
* \returns the cache size.
|
* \returns the cache size.
|
||||||
|
@ -46,7 +46,12 @@ class TestQgsServerLogger(unittest.TestCase):
|
|||||||
exists = os.access(self.log_file, os.R_OK)
|
exists = os.access(self.log_file, os.R_OK)
|
||||||
self.assertTrue(exists)
|
self.assertTrue(exists)
|
||||||
|
|
||||||
def test_logging_stderr(self):
|
def test_logging_log_file_stderr(self):
|
||||||
self.logger.setLogFile('stderr')
|
self.logger.setLogFile('stderr')
|
||||||
exists = os.access(self.log_file, os.R_OK)
|
exists = os.access(self.log_file, os.R_OK)
|
||||||
self.assertFalse(exists)
|
self.assertFalse(exists)
|
||||||
|
|
||||||
|
def test_logging_stderr(self):
|
||||||
|
self.logger.setLogStderr()
|
||||||
|
exists = os.access(self.log_file, os.R_OK)
|
||||||
|
self.assertFalse(exists)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user