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 |
Public Field Index: inherited from alib::lox::textlogger::PlainTextLogger | |
| bool | PruneESCSequences =true |
Public Field Index: inherited from alib::lox::textlogger::TextLogger | |
| ObjectConverter * | Converter = nullptr |
| TickConverter | DateConverter |
| bool | FormatWarningOnce =false |
Public Field Index: inherited from alib::lox::detail::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 alib::threads::RecursiveLock | |
| DbgLockAsserter | Dbg |
| The debug tool instance. | |
Protected Field Index: | |
| bool | currentlyInMultiLineOp =false |
| Flag to prevent file open/close operations when multi-line text logging is performed. | |
| MonoAllocator | ma |
| Allocator used for the OStreamWriter. | |
| std::ofstream * | ofs =nullptr |
| Encapsulates the text file stream in a system-dependent way. | |
| lang::Placeholder< OStreamWriter< nchar, MonoAllocator, true > > | writer |
Protected Field Index: inherited from alib::lox::textlogger::TextLogger | |
| strings::util::CalendarDateTime | callerDateTime |
| AString | logBuf |
| The internal log Buffer. | |
| AString | msgBuf |
| The buffer for converting the logables. | |
| Variable | varFormatAutoSizes |
| Variable | varFormatDateTime |
| Variable | varFormatMetaInfo |
| Variable | varFormatMultiLine |
| Variable | varFormatOther |
| Variable | varFormatTimeDiff |
| Variable | varReplacements |
Protected Field Index: inherited from alib::lox::detail::Logger | |
| NString32 | Name |
| NString32 | TypeName |
Protected Field Index: inherited from alib::threads::RecursiveLock | |
| std::recursive_mutex | mutex |
Protected Method Index: | |
| ALIB_DLL void | closeFile () |
| Closes the file. | |
| virtual ALIB_DLL integer | logPlainTextPart (const String &buffer, integer start, integer length) override |
| virtual ALIB_DLL void | notifyMultiLineOp (lang::Phase phase) override |
| virtual ALIB_DLL bool | notifyPlainTextLogOp (lang::Phase phase) override |
| ALIB_DLL void | openFile () |
| Opens the file. | |
Protected Method Index: inherited from alib::lox::textlogger::PlainTextLogger | |
| PlainTextLogger (const NString &name, const NString &typeName) | |
| virtual | ~PlainTextLogger () override |
| Destructs a MemoryLogger. | |
| virtual ALIB_DLL void | logText (detail::Domain &domain, Verbosity verbosity, AString &msg, detail::ScopeInfo &scope, int lineNumber, bool isRecursion) override |
Protected Method Index: inherited from alib::lox::textlogger::TextLogger | |
| ALIB_DLL | TextLogger (const NString &pName, const NString &typeName) |
| 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) |
Protected Method Index: inherited from alib::lox::detail::Logger | |
| 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 41 of file textfilelogger.inl.
| alib::AString alib::lox::loggers::TextFileLogger::FileName |
The path and fileName to the log file.
Definition at line 49 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 54 of file textfilelogger.inl.
|
protected |
Allocator used for the OStreamWriter.
Definition at line 30 of file textfilelogger.inl.
|
protected |
Encapsulates the text file stream in a system-dependent way.
Definition at line 38 of file textfilelogger.inl.
|
protected |
The OStreamWriter encapsulated in a placeholder. The instance is constructed and destructed with notifyPlainTextLogOp. With that, synchronized output is guaranteed.
Definition at line 35 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 69 of file textfilelogger.inl.
|
protected |
Closes the file.
Definition at line 70 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 106 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 80 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 91 of file textfilelogger.cpp.
|
protected |
Opens the file.
Definition at line 55 of file textfilelogger.cpp.