ALox  V. 2402 R. 0
Home ALox for C++ ALox for C# ALox for Java Download
Public Fields | Public Methods | Protected Fields | Protected Methods | List of all members
TextFileLogger Class Reference
Inheritance diagram for TextFileLogger:
[legend]
Collaboration diagram for TextFileLogger:
[legend]

Class Description


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 any time by simply setting the public member FileName without the need of any other interaction other than acquiring the Lox that this logger is attached to.

Public Fields

String FileName
 
bool hasIoError =false
 
- Public Fields inherited from PlainTextLogger
bool PruneESCSequences = true
 
- Public Fields inherited from TextLogger
AutoSizes AutoSizes = new AutoSizes()
 
ObjectConverter Converter
 
String FmtMsgSuffix =""
 
String FmtMultiLineMsgHeadline ="ALox: Multi line message follows: "
 Headline for multi line messages (depending on MultiLineMsgMode).
 
String FmtMultiLinePrefix =">> "
 
String FmtMultiLineSuffix =null
 
MetaInfo MetaInfo =new MetaInfo()
 
String MultiLineDelimiter =null
 
String MultiLineDelimiterRepl ="\\r"
 
int MultiLineMsgMode =2
 
- Public Fields inherited from Logger
int CntLogs
 
Ticks TimeOfCreation = new Ticks()
 The creation time of the Logger.
 
Ticks TimeOfLastLog = new Ticks()
 Timestamp of the last log operation.
 
- Public Fields inherited from ThreadLock
int RecursionWarningThreshold =10
 
int waitWarningTimeLimitInMillis =1000
 

Public Methods

 TextFileLogger (String fileName, String loggerName=null)
 
- Public Methods inherited from TextLogger
override int AddAcquirer (ThreadLock newAcquirer)
 
void ClearReplacements ()
 
override void Log (Domain domain, Verbosity verbosity, List< Object > logables, ScopeInfo scope)
 
override int RemoveAcquirer (ThreadLock acquirer)
 
void ResetAutoSizes ()
 
void SetReplacement (String searched, String replacement)
 
- Public Methods inherited from Logger
String GetName ()
 
String GetTypeName ()
 
override String ToString ()
 
- Public Methods inherited from SmartLock
 SmartLock ()
 
int CntAcquirers ()
 
- Public Methods inherited from ThreadLock
 ThreadLock (LockMode lockMode=LockMode.Recursive, Safeness safeness=Safeness.Safe)
 
virtual void Acquire ([CallerLineNumber] int cln=0,[CallerFilePath] String csf="",[CallerMemberName] String cmn="")
 
int DbgCountAcquirements (Thread thread=null)
 
LockMode GetMode ()
 
Safeness GetSafeness ()
 
virtual void Release ()
 
void SetSafeness (Safeness safeness)
 
override String ToString ()
 
bool WillRelease ()
 

Protected Fields

bool currentlyInMultiLineOp
 
StreamWriter sw
 
- Protected Fields inherited from TextLogger
AString logBuf =new AString( 256 )
 
AString msgBuf =new AString( 128 )
 
List< String > replacements =new List<String>()
 
int stdStreamLockRegistrationCounter =0
 
bool usesStdStreams
 
- Protected Fields inherited from Logger
String Name
 
String TypeName
 
- Protected Fields inherited from SmartLock
List< ThreadLockacquirers =new List<ThreadLock>()
 
- Protected Fields inherited from ThreadLock
int cntAcquirements
 
LockMode lockMode
 
Object mutex
 
Thread owner
 
Ticks waitTime =new Ticks()
 

Protected Methods

void closeFile ()
 
override bool logSubstring (AString buffer, int start, int length)
 
override bool notifyLogOp (Phase phase)
 
override void notifyMultiLineOp (Phase phase)
 
void openFile ()
 
- Protected Methods inherited from PlainTextLogger
 PlainTextLogger (String name, String typeName, bool usesStdStreams)
 
override void logText (Domain domain, Verbosity verbosity, AString msg, ScopeInfo scope, int lineNumber)
 
- Protected Methods inherited from TextLogger
 TextLogger (String name, String typeName, bool usesStdStreams)
 
- Protected Methods inherited from Logger
 Logger (String name, String typeName)
 

Constructor & Destructor Documentation

◆ TextFileLogger()

TextFileLogger ( String  fileName,
String  loggerName = null 
)
inline

Creates a TextFileLogger.

Parameters
fileNameThe filename (potentially including a path) of the output log file.
loggerNameThe name of the Logger. Defaults to "TEXTFILE".

Member Function Documentation

◆ closeFile()

void closeFile ( )
inlineprotected

Closes the file.

◆ logSubstring()

override bool logSubstring ( AString  buffer,
int  start,
int  length 
)
inlineprotectedvirtual

Write the given region of the given AString to the destination buffer.

Parameters
bufferThe string to write a portion of.
startThe start of the portion in buffer to write out.
lengthThe length of the portion in buffer to write out.
Returns
The IO status (true if OK).

Implements PlainTextLogger.

◆ notifyLogOp()

override bool notifyLogOp ( Phase  phase)
inlineprotectedvirtual

Start a new log line. Appends a new-line character sequence to previously logged lines.

Parameters
phaseIndicates the beginning or end of a log operation.
Returns
The IO status (true if OK).

Implements PlainTextLogger.

◆ notifyMultiLineOp()

override void notifyMultiLineOp ( Phase  phase)
inlineprotectedvirtual

Implementation of abstract interface signaling start and end of a multi line message. On start signal, the log file is opened, closed otherwise. Also stores the actual multi line message state in a field. This is for logText() to know whether file is to be opened/closed.

Parameters
phaseIndicates the beginning or end of a multi-line operation.

Implements TextLogger.

◆ openFile()

void openFile ( )
inlineprotected

Opens the file.

Member Data Documentation

◆ currentlyInMultiLineOp

bool currentlyInMultiLineOp
protected

Flag to prevent file open/close operations when multi line text logging is performed.

◆ FileName

String FileName

The path and fileName to the log file.

◆ hasIoError

bool hasIoError =false

Flag that indicates if there was an error opening he file

◆ sw

StreamWriter sw
protected

Used to write into a log file.


The documentation for this class was generated from the following file: