Computer Assisted Medical Intervention Tool Kit  version 5.2
 
Loading...
Searching...
No Matches
CamiTKLogger.h
Go to the documentation of this file.
1/*****************************************************************************
2 * $CAMITK_LICENCE_BEGIN$
3 *
4 * CamiTK - Computer Assisted Medical Intervention ToolKit
5 * (c) 2001-2024 Univ. Grenoble Alpes, CNRS, Grenoble INP - UGA, TIMC, 38000 Grenoble, France
6 *
7 * Visit http://camitk.imag.fr for more information
8 *
9 * This file is part of CamiTK.
10 *
11 * CamiTK is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * CamiTK is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22 *
23 * $CAMITK_LICENCE_END$
24 ****************************************************************************/
25
26#ifndef CAMITKLOGGER_H
27#define CAMITKLOGGER_H
28
29// -- Core stuff
30#include "CamiTKAPI.h"
31#include "InterfaceLogger.h"
32
33// -- Qt stuff
34#include <QDir>
35#include <QDateTime>
36class QFile;
37class QTextStream;
38
39namespace camitk {
40
124
125public :
127 CamiTKLogger();
128
130 ~CamiTKLogger() override;
131
134 LogLevel getLogLevel() override;
135
138 void setLogLevel(LogLevel level) override;
139
142 void setLogToStandardOutput(bool writeToStdOut) override;
143
147 bool getLogToStandardOutput() override;
148
156 bool setLogToFile(bool writeToFile) override;
157
174 bool setLogFileDirectory(QDir directoryName, bool moveExistingLogFile = true) override;
175
177 bool getLogToFile() override;
178
180 QFileInfo getLogFileInfo() override;
181
187 void setMessageBoxLevel(LogLevel level) override;
188
190 LogLevel getMessageBoxLevel() override;
191
196 void setDebugInformation(bool) override;
197
199 bool getDebugInformation() override;
200
206 void setTimeStampInformation(bool showTimeStamp) override;
207
209 bool getTimeStampInformation() override;
210
222 QString log(const QString msg, const LogLevel level, char const* fileName, char const* methodName, int lineNumber, const QObject* sender = nullptr) override final;
223
224
225protected:
227 virtual QString buildLogMessage(QString message, LogLevel level, char const* fileName, char const* methodName, int lineNumber, const QObject* sender = nullptr);
228
229private:
231 QString getCamiTKAPIInformation(const QObject* sender);
232
234 bool openLogFile(bool moveFile = false, QFileInfo fileToMove = QFileInfo());
235
237 void closeLogFile();
238
241
243 InterfaceLogger::LogLevel messageBoxLevel;
244
246 bool logToStdOut;
247
249 bool logToFile;
250
252 bool displayDebugInformation;
253
255 bool displayTimeStampInformation;
256
258 QDir logFileDirectory;
259
261 QFile* logFile;
262
264 QTextStream* logStream;
265
267 QDateTime logStartTime;
268
269};
270
271}
272
273#endif // CAMITKLOGGER_H
#define CAMITK_API
Definition CamiTKAPI.h:49
This is the default logger for CamiTK.
Definition CamiTKLogger.h:123
The CamiTK logger interface provides a flexible tracing system to CamiTK applications.
Definition InterfaceLogger.h:51
LogLevel
: how chatty should the log output be...
Definition InterfaceLogger.h:60
Definition Action.cpp:36