#include <memorylogger.hpp>
A logger that logs all messages to an in-memory buffer of type AString. The name of the Logger defaults to "MEMORY".
Definition at line 22 of file memorylogger.hpp.
Public Fields | |
| AString | MemoryLog |
| bool | UseWStringLengthForTabAdjustments = true |
Public Fields inherited from PlainTextLogger | |
| bool | PruneESCSequences = true |
Public Fields inherited from TextLogger | |
| lib::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 Fields inherited from Logger | |
| integer | CntLogs =0 |
| lib::time::Ticks | TimeOfCreation |
| lib::time::Ticks | TimeOfLastLog |
Public Fields inherited from ThreadLock | |
| NCString | DbgOwnerFile =nullptr |
| NCString | DbgOwnerFunc =nullptr |
| int | DbgOwnerLine |
| uint16_t | DbgRecursionWarningThreshold =10 |
| integer | DbgWarningAfterWaitTimeInMillis =2000L |
Public Methods | |
| MemoryLogger (const NString &name=nullptr, bool pruneESCSequences=true, bool useWStringLengthForTabAdjustments=true) | |
| virtual | ~MemoryLogger () override |
Public Methods inherited from TextLogger | |
| virtual ALIB_API | ~TextLogger () override |
| virtual ALIB_API void | AcknowledgeLox (LoxImpl *lox, 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 Methods inherited from Logger | |
| virtual | ~Logger () |
| const NString & | GetName () const |
| const NString & | GetTypeName () const |
Public Methods 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) More... | |
| ALIB_API int | RemoveAcquirer (ThreadLock *acquirer) |
Public Methods inherited from ThreadLock | |
| ALIB_API | ThreadLock (Safeness safeness=Safeness::Safe) |
| ALIB_API | ~ThreadLock () |
| ALIB_API void | Acquire (const NCString &dbgFile, int dbgLine, const NCString &dbgFunc) |
| int | CountAcquirements () const |
| Thread * | GetOwner () const |
| Safeness | GetSafeness () const |
| bool | IsOwnedByCurrentThread () const |
| ALIB_API void | Release () |
| defined(ALIB_DOX) More... | |
| ALIB_API void | SetSafeness (Safeness safeness) |
| bool | WillRelease () const |
Protected Methods | |
| virtual integer | logSubstring (const String &buffer, integer start, integer length) override |
| virtual bool | notifyLogOp (Phase phase) override |
| virtual void | notifyMultiLineOp (Phase) override |
Protected Methods inherited from PlainTextLogger | |
| PlainTextLogger (const NString &name, const NString &typeName, bool pUsesStdStreams) | |
| virtual | ~PlainTextLogger () override |
| virtual ALIB_API void | logText (detail::Domain &domain, Verbosity verbosity, AString &msg, detail::ScopeInfo &scope, int lineNumber) override |
Protected Methods inherited from TextLogger | |
| ALIB_API | TextLogger (const NString &pName, const NString &typeName, bool pUsesStdStreams) |
Protected Methods inherited from Logger | |
| Logger (const NString &name, const NString &typeName) | |
Additional Inherited Members | |
Public Types inherited from TextLogger | |
| enum | LightColorUsage { Auto, Never, Foreground, Background } |
Public Static Fields inherited from SmartLock | |
| static ALIB_API SmartLock | StdOutputStreams |
Protected Fields inherited from TextLogger | |
| AString | logBuf |
| AString | msgBuf |
| std::vector< AString > | replacements |
| int | stdStreamLockRegistrationCounter =0 |
| bool | usesStdStreams |
Protected Fields inherited from Logger | |
| NString32 | Name |
| NString32 | TypeName |
Protected Fields inherited from SmartLock | |
| std::vector< ThreadLock * > | acquirers |
| ThreadLockNR | lock |
Protected Fields inherited from ThreadLock | |
| uint16_t | cntAcquirements =0 |
| std::mutex | mutex |
| std::condition_variable | mutexNotifier |
| std::thread::id | owner |
| Safeness | safeness |
|
inlineexplicit |
Creates a MemoryLogger with the given name.
| name | (Optional) The name of the Logger. Defaults to "MEMORY". |
| pruneESCSequences | (Optional) Sets the member PruneESCSequences. Defaults to true. |
| useWStringLengthForTabAdjustments | (Optional) Sets the member UseWStringLengthForTabAdjustments. Defaults to true. |
Definition at line 60 of file memorylogger.hpp.
|
inlineoverridevirtual |
|
inlineoverrideprotectedvirtual |
Write the given region of the given AString to the destination buffer.
| 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. |
Implements PlainTextLogger.
Definition at line 102 of file memorylogger.hpp.
|
inlineoverrideprotectedvirtual |
Start a new log line. Appends a new-line character sequence to previously logged lines.
| phase | Indicates the beginning or end of a log line. |
Implements PlainTextLogger.
Definition at line 86 of file memorylogger.hpp.
|
inlineoverrideprotectedvirtual |
Empty implementation, not needed for this class
Implements TextLogger.
Definition at line 114 of file memorylogger.hpp.
| AString MemoryLog |
The logging Buffer. This can be accessed publicly and hence used as preferred. Especially, the whole log can easily be cleared using AString::Reset. In multi-threaded environments, Lox interface's mutex should be acquired before accessing this buffer. The initial size of the buffer is 8kb.
Definition at line 35 of file memorylogger.hpp.
| bool UseWStringLengthForTabAdjustments = true |
If this field is set to true (which is the default), the effective length of the messages when converted to wide character strings are taken into account.
Switching this off increases the overall logging performance (especially when logging into memory) significantly.
Definition at line 44 of file memorylogger.hpp.