Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::LogBackend Class Reference

Log backend implementation for MITK. More...

#include <mitkLogBackend.h>

Inheritance diagram for mitk::LogBackend:
Collaboration diagram for mitk::LogBackend:

Public Member Functions

void ProcessMessage (const LogMessage &) override
 Process and output a single log message. More...
 
LogBackendBase::OutputType GetOutputType () const override
 Return the output type of this backend. More...
 
- Public Member Functions inherited from mitk::LogBackendText
 ~LogBackendText () override
 
- Public Member Functions inherited from mitk::LogBackendBase
virtual ~LogBackendBase ()
 

Static Public Member Functions

static void Register ()
 Registers MITK log backend. More...
 
static void Unregister ()
 Unregister MITK log backend. More...
 
static void SetLogFile (const std::string &file)
 Set extra log file path in addition to the console log. More...
 
static void RotateLogFiles (const std::string &prefixPath)
 Activates and handles a rolling log file with the given prefix and path. More...
 
static std::string IncrementLogFileNames (const std::string &prefixPath, int numLogFiles=10)
 Increment the names of logfiles with the given prefixPath. More...
 
static std::string GetLogFile ()
 
static void EnableAdditionalConsoleWindow (bool enable)
 Enable an additional logging output window by means of itk::OutputWindow. More...
 
static void CatchLogFileCommandLineParameter (int &argc, char **argv)
 Automatically extract and remove the "--logfile <file>" parameters from the standard C main parameter list and calls SetLogFile if needed. More...
 

Static Protected Member Functions

static bool CheckIfFileExists (const std::string &filename)
 Check if a file exists. More...
 

Additional Inherited Members

- Public Types inherited from mitk::LogBackendBase
enum class  OutputType { Console , File , Other }
 Classification of the output destination of a backend. More...
 
- Protected Member Functions inherited from mitk::LogBackendText
void FormatSmart (const LogMessage &message, int threadID=0)
 Format the given message in smart/short format and write it to std::cout. More...
 
void FormatFull (const LogMessage &message, int threadID=0)
 Format the given message in full/long format and write it to std::cout. More...
 
void FormatSmart (std::ostream &out, const LogMessage &message, int threadID=0)
 Format the given message in smart/short format and write it to the given stream. More...
 
void FormatFull (std::ostream &out, const LogMessage &message, int threadID=0)
 Format the given message in full/long format and write it to the given stream. More...
 
void AppendTimeStamp (std::ostream &out)
 Append the current wall-clock time to the given stream. More...
 
void FormatSmartWindows (const LogMessage &message, int threadID)
 Format a message in smart/short format with colored Windows console output. More...
 

Detailed Description

Log backend implementation for MITK.

Definition at line 31 of file mitkLogBackend.h.

Member Function Documentation

◆ CatchLogFileCommandLineParameter()

static void mitk::LogBackend::CatchLogFileCommandLineParameter ( int &  argc,
char **  argv 
)
static

Automatically extract and remove the "--logfile <file>" parameters from the standard C main parameter list and calls SetLogFile if needed.

◆ CheckIfFileExists()

static bool mitk::LogBackend::CheckIfFileExists ( const std::string &  filename)
staticprotected

Check if a file exists.

Returns
Returns true if the file exists, false if not.

◆ EnableAdditionalConsoleWindow()

static void mitk::LogBackend::EnableAdditionalConsoleWindow ( bool  enable)
static

Enable an additional logging output window by means of itk::OutputWindow.

This might be relevant for showing log output in applications with no default output console.

◆ GetLogFile()

static std::string mitk::LogBackend::GetLogFile ( )
static
Returns
Return the log file if there is one. Returns an empty string if no log file is active.

◆ GetOutputType()

LogBackendBase::OutputType mitk::LogBackend::GetOutputType ( ) const
overridevirtual

Return the output type of this backend.

Returns
The output type, which is OutputType::Console for the MITK log backend.

Implements mitk::LogBackendBase.

◆ IncrementLogFileNames()

static std::string mitk::LogBackend::IncrementLogFileNames ( const std::string &  prefixPath,
int  numLogFiles = 10 
)
static

Increment the names of logfiles with the given prefixPath.

This means, if the prefixPath is "myLogFile" myLogFile-0.log is renamed to myLogFile-1.log, myLogFile-1.log to myLogFile-2.log, and so on. The oldest logfile is deleted. The number of log files is defined by the parameter "numLogFiles". The first logfile name is "free" (e.g., [prefix]-0.log) again. This name is returned.

Parameters
prefixPathShould hold the prefix of the logfile together with its path. E.g., "C:/programs/mitk/myLogFile".
numLogFilesSets the number of logfiles. Default value is 10. This means logfiles from [prefix]-0.log to [prefix]-1.log are stored.
Returns
Returns a new logfile name which is free again because the old first log file was renamed.
Exceptions
mitk::ExceptionThrows an exception if there is a problem with renaming the logfiles, e.g., because of file access problems.

◆ ProcessMessage()

void mitk::LogBackend::ProcessMessage ( const LogMessage &  )
overridevirtual

Process and output a single log message.

Writes the message to the console and, if configured, to the active log file. When an additional ITK output window is enabled, the message is forwarded there as well.

Implements mitk::LogBackendText.

◆ Register()

static void mitk::LogBackend::Register ( )
static

Registers MITK log backend.

◆ RotateLogFiles()

static void mitk::LogBackend::RotateLogFiles ( const std::string &  prefixPath)
static

Activates and handles a rolling log file with the given prefix and path.

This method handles 10 log files with a given prefix, e.g. "myLogFile". The 10 log files will then look like this:

  • myLogFile-0.log (current file)
  • myLogFile-1.log (last file)
  • myLogFile-2.log
  • [...]
  • myLogFile-9.log

Everytime this method this called, normally when MITK is started, then all log files are copied one file below (0 to 1, 1 to 2, and so on). The oldest logfile (number 9) is always deleted. So users have access to the log files of the last 10 runs.

Exceptions
mitk::ExceptionThrows an exception if there is a problem with renaming the logfiles, e.g., because of file access problems.
Parameters
prefixPathShould hold the prefix of the logfile together with its path. E.g., "C:/programs/mitk/myLogFile".

◆ SetLogFile()

static void mitk::LogBackend::SetLogFile ( const std::string &  file)
static

Set extra log file path in addition to the console log.

◆ Unregister()

static void mitk::LogBackend::Unregister ( )
static

Unregister MITK log backend.


The documentation for this class was generated from the following file: