Qore Logger Module Reference  0.1.1
Logger::LoggerAppenderFileRing Class Reference

Implemants appender writing to a file with file circular rotation support. More...

Inheritance diagram for Logger::LoggerAppenderFileRing:

Public Member Methods

 constructor (*string n_name, LoggerLayout n_layout, string n_pattern, int n_count=DEFAULT_ROTATION_COUNT, *string n_encoding)
 Creates the object. More...
 
int getCount ()
 Returns number of files in ring.
 
int getCurrentIndex ()
 Returns current ring index being used for logging.
 
 processEventImpl (int type, auto params)
 Implements filename rotation; handles the open and rotate events directly; passes all other events to the subclass for handling. More...
 
- Public Member Methods inherited from Logger::AbstractLoggerAppenderFileRotate
 rotate ()
 Pushes rotate event. More...
 
- Public Member Methods inherited from Logger::LoggerAppenderFile
 constructor (*string n_name, LoggerLayout n_layout, string n_filename, *string n_encoding)
 Creates the object. More...
 
File getFile ()
 Returns the file object for the appender.
 
string getFileName ()
 Returns the current filename.
 
- Public Member Methods inherited from Logger::LoggerAppenderWithLayout
 constructor (*string n_name, LoggerLayout n_layout)
 Creates the object. More...
 
LoggerLayout getLayout ()
 Returns the layout for the appender.
 
 setLayout (LoggerLayout n_layout)
 Assigns a layout to the appender. More...
 
- Public Member Methods inherited from Logger::LoggerAppender
 addFilter (LoggerFilter filter, bool top=False)
 Adds a filter to the chain. More...
 
 close ()
 Releases any resources allocated by the appender and closes it.
 
 constructor (*string n_name)
 Creates the object. More...
 
list< LoggerFiltergetFilters ()
 Returns the filter chain as a list. More...
 
string getName ()
 Returns the appender name.
 
*LoggerAppenderQueue getQueue ()
 Returns async queue or NOTHING when events are processed synchronously.
 
bool isOpen ()
 Returns True if the appender is open and therefore active.
 
 open ()
 Opens logging resources. More...
 
bool post (LoggerEvent event)
 Posts the given event to the output queue. More...
 
 removeAllFilters ()
 Clears the filter chain by removing all filters.
 
 removeFilter (LoggerFilter filter)
 Removes the given filter from the filter chain. More...
 
 setQueue (*LoggerAppenderQueue n_queue)
 Sets the appender queue. More...
 

Public Attributes

const DEFAULT_DATE_FORMAT = "YYYYMMDDHHmmSS"
 default date format
 
- Public Attributes inherited from Logger::AbstractLoggerAppenderFileRotate
const DEFAULT_ROTATION_COUNT = 10
 default value for rotation chain
 
const EVENT_ROTATE = 10001
 rotate event
 
- Public Attributes inherited from Logger::LoggerAppender
const EVENT_CLOSE = 3
 close event
 
const EVENT_LOG = 2
 logging event
 
const EVENT_OPEN = 1
 open event
 

Private Member Methods

*string resolveField (auto data, string key, *string option)
 Returns a string for a format field for a pattern-based filename. More...
 
- Private Member Methods inherited from Logger::LoggerAppenderWithLayout
auto serializeImpl (LoggerEvent event)
 Returns the value formatted using the layout pattern. More...
 
- Private Member Methods inherited from Logger::LoggerAppender
bool pushEvent (int type, auto params)
 Pushes the given event on the queue or calls processEventImpl() in case of synchronous processing. More...
 
 constructor (string pattern)
 Creates the object. More...
 
string format (auto data)
 Formats the event record with the current pattern. More...
 
string getPattern ()
 Returns the current pattern.
 
 setPattern (string value)
 Sets the new pattern. More...
 

Additional Inherited Members

- Private Attributes inherited from Logger::LoggerPattern
list parsedPattern
 parsed pattern
 
const ESCAPE_CHAR = "%"
 format escape character
 

Detailed Description

Implemants appender writing to a file with file circular rotation support.

The events will be logged to a file until rotation occurs. At that moment the current file is closed, next file is created and logging continues to the new file.

Member Function Documentation

◆ constructor()

Logger::LoggerAppenderFileRing::constructor ( *string  n_name,
LoggerLayout  n_layout,
string  n_pattern,
int  n_count = DEFAULT_ROTATION_COUNT,
*string  n_encoding 
)

Creates the object.

Parameters
n_namethe name of the appender
n_layoutthe layout for the appender
n_patternto generate the file name; see information below
n_countnumber of files in ring, if count is <=0 then no ratation is performed
n_encodingthe encoding of the output file

The following table explains the characters used in LoggerPattern and all other characters that you can use in your custom pattern:

Conversion character Meaning
i Used to output the current file index from 0 to count-1. option may specify sprintf() format, e.g. "%.3d"
n Used to output the rotation count. Option may specify sprintf() format, e.g. "%.3d"
c Used to output the appender name.
C Used to output the appender class name.
d Used to output the date of the logging event using format_date. Option may specify date format, e.g. "%d{DD.MM.YYYY HH:mm:SS}", default value is "YYYYMMDDHHmmSS"
E Used to output the environment variable with name given by option, e.g. "%E{HOME}"
% The literal percent sign. "%%" will print a "%" sign

For example, the pattern "/var/run/log/%c.log.%i{%03d}" creates the following file names: "/var/run/log/MyLogger.log.000", "/var/run/log/MyLogger.log.001" etc.

◆ processEventImpl()

Logger::LoggerAppenderFileRing::processEventImpl ( int  type,
auto  params 
)
virtual

Implements filename rotation; handles the open and rotate events directly; passes all other events to the subclass for handling.

Parameters
typethe event type
paramsevent parameters

Reimplemented from Logger::LoggerAppenderFile.

◆ resolveField()

*string Logger::LoggerAppenderFileRing::resolveField ( auto  data,
string  key,
*string  option 
)
privatevirtual

Returns a string for a format field for a pattern-based filename.

Parameters
datainput context reference data
keythe format character
optionthe format option value, if any
Returns
the formatted string

Implements Logger::LoggerPattern.