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 27 of file plaintextlogger.hpp.
#include <plaintextlogger.hpp>
Public Field Index: | |
bool | PruneESCSequences = true |
Public Field Index: inherited from TextLogger | |
strings::util::AutoSizes | AutoSizes |
ObjectConverter * | Converter = nullptr |
String16 | FmtMsgSuffix |
String64 | FmtMultiLineMsgHeadline = A_CHAR("ALox: Multi line message follows: ") |
String16 | FmtMultiLinePrefix = A_CHAR(">> ") |
String16 | FmtMultiLineSuffix = A_CHAR("") |
textlogger::MetaInfo * | MetaInfo |
AString | MultiLineDelimiter |
String16 | MultiLineDelimiterRepl = A_CHAR("\\r") |
int | MultiLineMsgMode =2 |
Public Field Index: inherited from Logger | |
integer | CntLogs =0 |
time::Ticks | TimeOfCreation |
time::Ticks | TimeOfLastLog |
Public Field Index: inherited from ThreadLock | |
NCString | DbgOwnerFile =nullptr |
NCString | DbgOwnerFunc =nullptr |
int | DbgOwnerLine |
uint16_t | DbgRecursionWarningThreshold =10 |
integer | DbgWarningAfterWaitTimeInMillis =2000L |
Additional Inherited Members | |
Public Type Index: inherited from TextLogger | |
enum class | LightColorUsage { Auto , Never , Foreground , Background } |
Public Static Field Index: inherited from SmartLock | |
static ALIB_API SmartLock | StdOutputStreams |
Public Method Index: inherited from TextLogger | |
virtual ALIB_API | ~TextLogger () override |
virtual ALIB_API void | AcknowledgeLox (LoxImpl *lox, lang::ContainerOp op) override |
virtual ALIB_API void | ClearReplacements () |
virtual ALIB_API void | Log (Domain &domain, Verbosity verbosity, Boxes &logables, 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 () |
const NString & | GetName () const |
const NString & | GetTypeName () const |
Public Method Index: inherited from SmartLock | |
SmartLock () | |
void | Acquire (const NCString &dbgFile, int dbgLine, const NCString &dbgFunc) |
ALIB_API int | AddAcquirer (ThreadLock *newAcquirer) |
ALIB_API int | CntAcquirers () |
ALIB_API void | Release () |
defined(ALIB_DOX) | |
ALIB_API int | RemoveAcquirer (ThreadLock *acquirer) |
Public Method Index: inherited from ThreadLock | |
ALIB_API | ThreadLock (lang::Safeness safeness=lang::Safeness::Safe) |
ALIB_API | ~ThreadLock () |
ALIB_API void | Acquire (const NCString &dbgFile, int dbgLine, const NCString &dbgFunc) |
int | CountAcquirements () const |
Thread * | GetOwner () const |
lang::Safeness | GetSafeness () const |
bool | IsOwnedByCurrentThread () const |
ALIB_API void | Release () |
defined(ALIB_DOX) | |
ALIB_API void | SetSafeness (lang::Safeness safeness) |
bool | WillRelease () const |
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 41 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 54 of file plaintextlogger.hpp.
|
inlineoverrideprotectedvirtual |
|
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 VStudioLogger, ConsoleLogger, MemoryLogger, and TextFileLogger.
|
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 35 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 VStudioLogger, ConsoleLogger, MemoryLogger, and TextFileLogger.