Qore Logger Module Reference 1.0
Loading...
Searching...
No Matches
Logger::LoggerAppenderFileRing Class Reference

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

#include <Logger.qm.dox.h>

Inheritance diagram for Logger::LoggerAppenderFileRing:
[legend]

Public Member Methods

 constructor (*string name, LoggerLayout layout, string pattern, int count=DEFAULT_ROTATION_COUNT, *string 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...
 
abstract int getCount ()
 Abstract method to get count of rotation objects.
 

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
 

Private Member Methods

*string resolveField (auto data, string key, *string option)
 Returns a string for a format field for a pattern-based filename. More...
 

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  name,
LoggerLayout  layout,
string  pattern,
int  count = DEFAULT_ROTATION_COUNT,
*string  encoding 
)

Creates the object.

Parameters
namethe name of the appender
layoutthe layout for the appender
patternto generate the file name; see information below
countnumber of files in ring, if count is <=0 then no ratation is performed
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 
)

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

◆ resolveField()

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

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