A text logger that either removes or ignores (just writes through) ALox ESC sequences. Implements abstract method logText and introduces two new abstract methods logSubstring and notifyLogOp.
Definition at line 25 of file plaintextlogger.hpp.
#include <plaintextlogger.hpp>
Public Field Index: | |
bool | PruneESCSequences = true |
Public Field Index: inherited from TextLogger | |
ObjectConverter * | Converter = nullptr |
TickConverter | DateConverter |
bool | FormatWarningOnce = false |
Public Field Index: inherited from Logger | |
integer | CntLogs =0 |
time::Ticks | TimeOfCreation |
The creation time of the Logger. | |
time::Ticks | TimeOfLastLog |
Timestamp of the last log operation. | |
Public Field Index: inherited from RecursiveLock | |
DbgLockAsserter | Dbg |
The debug tool instance. | |
Protected Method Index: | |
PlainTextLogger (const NString &name, const NString &typeName, bool pUsesStdStreams) | |
virtual | ~PlainTextLogger () override |
Destructs a MemoryLogger. | |
virtual integer | logSubstring (const String &buffer, integer start, integer length)=0 |
virtual ALIB_API void | logText (detail::Domain &domain, Verbosity verbosity, AString &msg, detail::ScopeInfo &scope, int lineNumber) override |
virtual bool | notifyLogOp (lang::Phase phase)=0 |
Protected Method Index: inherited from TextLogger | |
ALIB_API | TextLogger (const NString &pName, const NString &typeName, bool pUsesStdStreams) |
virtual void | notifyMultiLineOp (lang::Phase phase)=0 |
virtual ALIB_API void | processVariable (const NString &domainPath, Verbosity verbosity, detail::ScopeInfo &scope, AString &dest, Substring &variable) |
virtual ALIB_API void | writeMetaInfo (AString &buffer, detail::Domain &domain, Verbosity verbosity, detail::ScopeInfo &scope) |
virtual ALIB_API void | writeTimeDiff (AString &buffer, int64_t diffNanos) |
Protected Method Index: inherited from Logger | |
Logger (const NString &name, const NString &typeName) | |
Additional Inherited Members | |
Public Method Index: inherited from TextLogger | |
virtual ALIB_API | ~TextLogger () override |
Destructs a TextLogger. | |
virtual ALIB_API void | AcknowledgeLox (detail::LoxImpl *lox, lang::ContainerOp op) override |
virtual ALIB_API void | ClearReplacements () |
Removes all pairs of searched strings and their replacement value. | |
FormatAutoSizes & | GetAutoSizes () |
FormatDateTime & | GetFormatDate () |
FormatMetaInfo & | GetFormatMetaInfo () |
FormatMultiLine & | GetFormatMultiLine () |
FormatOther & | GetFormatOther () |
FormatTimeDiff & | GetFormatTimeDiff () |
Replacements & | GetReplacements () |
virtual ALIB_API void | Log (detail::Domain &domain, Verbosity verbosity, BoxesMA &logables, detail::ScopeInfo &scope) override |
virtual ALIB_API void | ResetAutoSizes () |
virtual ALIB_API void | SetReplacement (const String &searched, const String &replacement) |
Public Method Index: inherited from Logger | |
virtual | ~Logger () override |
Destructs a logger. | |
const NString & | GetName () const |
const NString & | GetTypeName () const |
Public Method Index: inherited from RecursiveLock | |
~RecursiveLock () override | |
Destructor. With debug-compilations, asserts that this lock is not acquired. | |
ALIB_API void | AcquireRecursive (ALIB_DBG_TAKE_CI) |
virtual ALIB_API bool | DCSIsAcquired () const override |
virtual ALIB_API bool | DCSIsSharedAcquired () const override |
ALIB_API void | ReleaseRecursive (ALIB_DBG_TAKE_CI) |
ALIB_API bool | TryAcquire (ALIB_DBG_TAKE_CI) |
Public Method Index: inherited from DbgCriticalSections::AssociatedLock | |
virtual | ~AssociatedLock () |
Virtual Destructor. | |
Protected Field Index: inherited from TextLogger | |
lang::system::CalendarDateTime | callerDateTime |
AString | logBuf |
The internal log Buffer. | |
AString | msgBuf |
The buffers for converting the logables. | |
bool | usesStdStreams |
Variable | varFormatAutoSizes |
Variable | varFormatDateTime |
Variable | varFormatMetaInfo |
Variable | varFormatMultiLine |
Variable | varFormatOther |
Variable | varFormatTimeDiff |
Variable | varReplacements |
Protected Field Index: inherited from Logger | |
NString32 | Name |
NString32 | TypeName |
Protected Field Index: inherited from RecursiveLock | |
std::recursive_mutex | mutex |
bool PruneESCSequences = true |
If this field is set to true
(the default), all ESC color and style codes get removed when logging into this Logger. ESC::TAB
is processed.
It might be useful, to set this to false, e.g., in the case, the contents of the Logger is (later) written into a different logger (e.g., as a multi line message) which is capable of interpreting the escape sequences of class ESC.
Definition at line 37 of file plaintextlogger.hpp.
|
inlineexplicitprotected |
Creates a PlainTextLogger
name | The name of the Logger. If empty, it defaults to the type name. |
typeName | The type of the Logger. |
pUsesStdStreams | Denotes whether this logger writes to the standard output streams. |
Definition at line 50 of file plaintextlogger.hpp.
|
inlineoverrideprotectedvirtual |
Destructs a MemoryLogger.
Definition at line 57 of file plaintextlogger.hpp.
|
protectedpure virtual |
Abstract method to be implemented by descendants. Has to write the given region of the given string to the destination. Has to return the number of characters written, which might be different from the region length requested, e.g., in case of character set conversions.
If an error occurs, -1
can be returned to indicate that the current log should be aborted. In this case, no invocation of notifyLogOp(Phase::End) will be performed.
buffer | The string to write a portion of. |
start | The start of the portion in buffer to write out. |
length | The length of the portion in buffer to write out. |
Implemented in ConsoleLogger, MemoryLogger, TextFileLogger, and VStudioLogger.
|
overrideprotectedvirtual |
The implementation of the abstract method of parent class TextLogger. Loops over the log text, removes or ignores ESC sequences (all but ESC.TAB) and invokes abstract methods of descendants as follows:
domain | The Log Domain. |
verbosity | The verbosity. This has been checked to be active already on this stage and is provided to be able to be logged out only. |
msg | The log message. |
scope | Information about the scope of the Log Statement.. |
lineNumber | The line number of a multi-line message, starting with 0. For single line messages this is -1. |
Implements TextLogger.
Definition at line 22 of file plaintextlogger.cpp.
|
protectedpure virtual |
Abstract method to be implemented by descendants. This method is called when a new log message is started. It is called exactly once before a series of logSubstring() calls and exactly once after such series. If either the start or one of the calls to logSubstring returns false
, the second invocation that would indicate the end of a log message is omitted.
Implementing this method allows the acquisition of system resources (e.g., opening a file).
phase | Indicates the beginning or end of a log line. |
false
is returned, the log line is aborted without an invocation of notifyLogOp(Phase::End). Implemented in ConsoleLogger, MemoryLogger, TextFileLogger, and VStudioLogger.