Computer Assisted Medical Intervention Tool Kit  version 5.2
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>
36 class QFile;
37 class QTextStream;
38 
39 namespace camitk {
40 
124 
125 public :
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 
225 protected:
227  virtual QString buildLogMessage(QString message, LogLevel level, char const* fileName, char const* methodName, int lineNumber, const QObject* sender = nullptr);
228 
229 private:
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