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 15 of file plaintextlogger.inl.
Public Field Index: | |
bool | PruneESCSequences = true |
![]() | |
ObjectConverter * | Converter = nullptr |
TickConverter | DateConverter |
bool | FormatWarningOnce = false |
![]() | |
integer | CntLogs =0 |
time::Ticks | TimeOfCreation |
The creation time of the Logger. | |
time::Ticks | TimeOfLastLog |
Timestamp of the last log operation. | |
![]() | |
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_DLL void | logText (detail::Domain &domain, Verbosity verbosity, AString &msg, detail::ScopeInfo &scope, int lineNumber) override |
virtual bool | notifyLogOp (lang::Phase phase)=0 |
![]() | |
ALIB_DLL | TextLogger (const NString &pName, const NString &typeName, bool pUsesStdStreams) |
virtual void | notifyMultiLineOp (lang::Phase phase)=0 |
virtual ALIB_DLL void | processVariable (const NString &domainPath, Verbosity verbosity, detail::ScopeInfo &scope, AString &dest, Substring &variable) |
virtual ALIB_DLL void | writeMetaInfo (AString &buffer, detail::Domain &domain, Verbosity verbosity, detail::ScopeInfo &scope) |
virtual ALIB_DLL void | writeTimeDiff (AString &buffer, int64_t diffNanos) |
![]() | |
Logger (const NString &name, const NString &typeName) | |
virtual void | AcknowledgeLox (LoxImpl *lox, lang::ContainerOp op) |
bool alib::lox::textlogger::PlainTextLogger::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 27 of file plaintextlogger.inl.
|
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 40 of file plaintextlogger.inl.
|
inlineoverrideprotectedvirtual |
Destructs a MemoryLogger.
Definition at line 47 of file plaintextlogger.inl.
|
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 alib::lox::loggers::ConsoleLogger, alib::lox::loggers::MemoryLogger, alib::lox::loggers::TextFileLogger, and alib::lox::loggers::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 alib::lox::textlogger::TextLogger.
Definition at line 47 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 alib::lox::loggers::ConsoleLogger, alib::lox::loggers::MemoryLogger, alib::lox::loggers::TextFileLogger, and alib::lox::loggers::VStudioLogger.