This is a very simple file logger for textual log outputs. The file name string provided in the constructor is not verified. The fileName may be changed by simply setting the public member FileName.
In alignment with ALox principles (ALox does not throw!), the logger does not throw i/o exceptions. In debug-compilations, ALib warnings are issued. Recent system io/ errors are stored in public field# LastSystemError. The constructor tries to open/close the file with write permissions. For many applications, it should be enough to check this field after construction and take according actions on failure. Otherwise, errors may periodically be checked by an application (e.g., no space left on device, etc.).
Definition at line 23 of file textfilelogger.inl.
Public Field Index: | |
alib::AString | FileName |
The path and fileName to the log file. | |
SystemErrors | LastSystemError = SystemErrors::None |
![]() | |
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. | |
Public Method Index: | |
ALIB_DLL | TextFileLogger (const alib::String &fileName, const alib::NString &loggerName=nullptr) |
virtual | ~TextFileLogger () override |
Destructs a TextFileLogger. | |
![]() | |
virtual ALIB_DLL | ~TextLogger () override |
Destructs a TextLogger. | |
virtual ALIB_DLL void | AcknowledgeLox (detail::LoxImpl *lox, lang::ContainerOp op) override |
virtual ALIB_DLL 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_DLL void | Log (detail::Domain &domain, Verbosity verbosity, BoxesMA &logables, detail::ScopeInfo &scope) override |
virtual ALIB_DLL void | ResetAutoSizes () |
virtual ALIB_DLL void | SetReplacement (const String &searched, const String &replacement) |
![]() | |
virtual | ~Logger () override |
Destructs a logger. | |
const NString & | GetName () const |
const NString & | GetTypeName () const |
![]() | |
~RecursiveLock () override | |
Destructor. With debug-compilations, asserts that this lock is not acquired. | |
ALIB_DLL void | AcquireRecursive (ALIB_DBG_TAKE_CI) |
virtual ALIB_DLL bool | DCSIsAcquired () const override |
virtual ALIB_DLL bool | DCSIsSharedAcquired () const override |
ALIB_DLL void | ReleaseRecursive (ALIB_DBG_TAKE_CI) |
ALIB_DLL bool | TryAcquire (ALIB_DBG_TAKE_CI) |
![]() | |
virtual | ~AssociatedLock () |
Virtual Destructor. | |
Protected Field Index: | |
bool | currentlyInMultiLineOp = false |
Flag to prevent file open/close operations when multi line text logging is performed. | |
StringWriter | writer |
Encapsulates the text file stream in a system dependent way. | |
![]() | |
strings::util::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 |
![]() | |
NString32 | Name |
NString32 | TypeName |
![]() | |
std::recursive_mutex | mutex |
Protected Method Index: | |
ALIB_DLL void | closeFile () |
Closes the file. | |
virtual ALIB_DLL integer | logSubstring (const String &buffer, integer start, integer length) override |
virtual ALIB_DLL bool | notifyLogOp (lang::Phase phase) override |
virtual ALIB_DLL void | notifyMultiLineOp (lang::Phase phase) override |
ALIB_DLL void | openFile () |
Opens the file. | |
![]() | |
PlainTextLogger (const NString &name, const NString &typeName, bool pUsesStdStreams) | |
virtual | ~PlainTextLogger () override |
Destructs a MemoryLogger. | |
virtual ALIB_DLL void | logText (detail::Domain &domain, Verbosity verbosity, AString &msg, detail::ScopeInfo &scope, int lineNumber) override |
![]() | |
ALIB_DLL | TextLogger (const NString &pName, const NString &typeName, bool pUsesStdStreams) |
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) |
|
protected |
Flag to prevent file open/close operations when multi line text logging is performed.
Definition at line 34 of file textfilelogger.inl.
alib::AString alib::lox::loggers::TextFileLogger::FileName |
The path and fileName to the log file.
Definition at line 42 of file textfilelogger.inl.
SystemErrors alib::lox::loggers::TextFileLogger::LastSystemError = SystemErrors::None |
Errors that usually indicate i/o problems. With construction of the logger, the file is tried to be opened and closed, which might indicate major problems (permissions, path, etc) with this public field very early.
Definition at line 47 of file textfilelogger.inl.
|
protected |
Encapsulates the text file stream in a system dependent way.
Definition at line 31 of file textfilelogger.inl.
|
explicit |
Creates a TextFileLogger.
fileName | The filename (potentially including a path) of the output log file. |
loggerName | The name of the Logger. Defaults to "TEXTFILE". |
Definition at line 34 of file textfilelogger.cpp.
|
inlineoverridevirtual |
Destructs a TextFileLogger.
Definition at line 66 of file textfilelogger.inl.
|
protected |
Closes the file.
Definition at line 75 of file textfilelogger.cpp.
|
overrideprotectedvirtual |
Writes the given region of the given string to the console.
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 alib::lox::textlogger::PlainTextLogger.
Definition at line 118 of file textfilelogger.cpp.
|
overrideprotectedvirtual |
Starts/ends log line. Appends a new-line character sequence to previously logged lines.
phase | Indicates the beginning or end of a log line. |
Implements alib::lox::textlogger::PlainTextLogger.
Definition at line 100 of file textfilelogger.cpp.
|
overrideprotectedvirtual |
Empty implementation, not needed for this class
phase | Indicates the beginning or end of a multi-line operation. |
Implements alib::lox::textlogger::TextLogger.
Definition at line 88 of file textfilelogger.cpp.
|
protected |
Opens the file.
Definition at line 56 of file textfilelogger.cpp.