Computer Assited Medical Intervention Tool Kit  version 4.1
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-2018 Univ. Grenoble Alpes, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
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;
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 
244 
247 
249  bool logToFile;
250 
253 
256 
259 
261  QFile* logFile;
262 
264  QTextStream* logStream;
265 
267  QDateTime logStartTime;
268 
269 };
270 
271 }
272 
273 #endif // CAMITKLOGGER_H
QDateTime logStartTime
Instanciation time.
Definition: CamiTKLogger.h:267
InterfaceLogger::LogLevel level
current log level
Definition: CamiTKLogger.h:240
InterfaceLogger::LogLevel messageBoxLevel
current level for message boxes
Definition: CamiTKLogger.h:243
QTextStream * logStream
Current stream to output to the log file.
Definition: CamiTKLogger.h:264
bool displayTimeStampInformation
display time stamp information (in the form "yyyy-MM-dd HH:mm:ss.zzz")
Definition: CamiTKLogger.h:255
Definition: Action.cpp:36
#define CAMITK_API
Definition: CamiTKAPI.h:49
QFile * logFile
Current log file (the stream is flushed log message by log message)
Definition: CamiTKLogger.h:261
LogLevel
: how chatty should the log output be...
Definition: InterfaceLogger.h:60
bool displayDebugInformation
display debug information (file/class name, method name and line number)
Definition: CamiTKLogger.h:252
QDir logFileDirectory
Current directory for the log file.
Definition: CamiTKLogger.h:258
The CamiTK logger interface provides a flexible tracing system to CamiTK applications.
Definition: InterfaceLogger.h:51
This is the default logger for CamiTK.
Definition: CamiTKLogger.h:123
bool logToStdOut
is the logger currently writing everything to the standard output
Definition: CamiTKLogger.h:246
bool logToFile
is the logger currently writing everything to a file
Definition: CamiTKLogger.h:249