The C++ framework for developing highly scalable, high performance servers on Windows platforms.

Log files and the pluggable logging system
[Programming Concepts]

Collaboration diagram for Log files and the pluggable logging system:

Detailed Description

Having explained our lack of enthusiasm for Debug tracing you might be surprised to find that there is a fairly complex pluggable logging system underneath our basic JetByteTools::Core::Output calls. This can be customised to provide a high performance trace log for supporting software that's been written with the framework. You can either use one of the many implementations of JetByteTools::Win32::ILogMessages or write your own and plug it in. Alternatively you can take a look at JetByteTools::Win32::CDebugTrace and write something similar to provide a separate system trace and debug log system, or use the log writers for other purposes...

This section contains links to the code that implements this concept.


Classes

class  CDebugTrace
class  CDebugTrace::LogInstaller
 A class that takes an instance of ILogMessages and installs it as the message log used by the CDebugTrace class and then removes it and reinstalls the previous log in its destructor. It can, therefore, be used to support scope based log installation and removal. More...
class  ILogMessages
 An interface for logging messages. These can be debug trace messages or more structured logging. The messages are sent to a log, which can be pretty much anything. More...
class  CMemoryBasedMessageLog
 An object that implements ILogMessages and. More...
class  CMessageLog
 An object that implements ILogMessages and and allows other implementations to be plugged into it... More...
class  CNullMessageLog
 An object that implements ILogMessages and does nothing. More...
class  CSimpleMessageLog
 An object that implements ILogMessages and. More...
class  CAsyncFileLog
 A class that implements JetByteTools::Core::ILogMessages to provide an asynchronous file log that uses overlapped I/O to perform writes to the log file. This class allows you to change the name of the log file after creation but this functionality should be externally synchronised with any use of the various LogMessage() calls and any calls on the IWaitable interface to ensure that SetLogName() is never called concurrently to one of the other calls. The reason that we require YOU to do this synchronisation work is that when used carefully (i.e. SetLogName() is never called when the class is being used by multiple threads) then there is no need to synchronise the calls to LogMessage(). More...
class  CFixedFileHeaderRotatingAsyncFileLog
 A class that implements JetByteTools::ILogMessages to provide an asynchronous file log that uses overlapped I/O to perform writes to the log file. The log can be set to automatically rotate (i.e. create a new log file) after a set period of time or when the file grows to a particular size. More...
class  CLoggingAsyncFileWriterCallback
 A class that implements CAsyncFileWriter::Callback and logs errors and when the pending write limit is reached. More...
class  CRotatingAsyncFileLog
 A class that implements JetByteTools::ILogMessages to provide an asynchronous file log that uses overlapped I/O to perform writes to the log file. The log can be set to automatically rotate (i.e. create a new log file) after a set period of time or when the file grows to a particular size. More...
class  TTimeChangeAwareRotatingAsyncFileLog
 A class that implements JetByteTools::ILogMessages to provide an asynchronous file log that uses overlapped I/O to perform writes to the log file. The log can be set to automatically rotate (i.e. create a new log file) after a set period of time or when the file grows to a particular size. Aware of time changes that occur on the system. More...


Generated on Sun Sep 12 19:06:47 2021 for The Server Framework - v7.4 by doxygen 1.5.3