Loading...
Searching...
No Matches
Logger::LoggerAppenderFileRing Class Reference

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

Inheritance diagram for Logger::LoggerAppenderFileRing:
[legend]

## Public Member Functions

| 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 Member Functions inherited from Logger::LoggerAppenderFile
| constructor (*string name, LoggerLayout layout, string filename, *string encoding)
| Creates the object. More...
File | getFile ()
| Returns the file object for the appender.
string | getFileName ()
| Returns the current filename.
| processEventImpl (int type, auto params)
| Processes open, close, and log events with the file and ignores all other events. More...
Public Member Functions inherited from Logger::LoggerAppenderWithLayout
| constructor (*string name, LoggerLayout layout)
| Creates the object. More...
LoggerLayout | getLayout ()
| Returns the layout for the appender.
| setLayout (LoggerLayout layout)
| Assigns a layout to the appender. More...
Public Member Functions 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 name)
| Creates the object. More...
list< LoggerFilter > | getFilters ()
| 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...
| processEvent (int type, auto params)
| Processes an event to the physical target. More...
abstract | processEventImpl (int type, auto params)
| Processes the event to the physical target. More...
| removeAllFilters ()
| Clears the filter chain by removing all filters.
| removeFilter (LoggerFilter filter)
| Removes the given filter from the filter chain. More...
| setQueue (*LoggerAppenderQueue 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::LoggerAppenderFile
const | EVENT_REOPEN = 1001
| reopen 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

## Protected Member Functions

*string | resolveField (auto data, string key, *string option)
| Returns a string for a format field for a pattern-based filename. More...
Protected Member Functions inherited from Logger::AbstractLoggerAppenderFileRotate
*object | ensureAtomicOperations (int type)
| Returns an object that can be used to ensure atomic operations for appender operations.
Protected Member Functions inherited from Logger::LoggerAppenderFile
*object | ensureAtomicOperations (int type)
| Returns an object that can be used to ensure atomic operations for appender operations.
Protected Member Functions inherited from Logger::LoggerAppenderWithLayout
auto | serializeImpl (LoggerEvent event)
| Returns the value formatted using the layout pattern. More...
Protected Member Functions inherited from Logger::LoggerAppender
*object | ensureAtomicOperations (int type)
| Returns an object that can be used to ensure atomic operations for appender operations.
RWLock | lock ()
| The lock to ensure proper serialization with concurrent access.
bool | pushEvent (int type, auto params)
| Pushes the given event on the queue or calls processEvent() in case of synchronous processing. More...
abstract auto | serializeImpl (LoggerEvent event)
| Serializes the given event to put in the queue or write to the target device. More...
abstract *string | resolveField (auto data, string key, *string option)
| Returns a formatted string for an input pattern. 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

Protected Attributes inherited from Logger::LoggerPattern
list< auto > | parsedPattern
| parsed pattern; list elements may be strings or hashes
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 | name,
|  | LoggerLayout | layout,
|  | string | pattern,
|  | int | count = `DEFAULT_ROTATION_COUNT`,
|  | *string | encoding
| ) |  |

Creates the object.

Parameters

  name | the name of the appender
  layout | the layout for the appender
  pattern | to generate the file name; see information below
  count | number of files in ring, if count is <=0 then no ratation is performed
  encoding | the 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

  type | the event type
  params | event parameters

Reimplemented from Logger::LoggerAppenderFile.

## resolveField()

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

protected virtual

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

Parameters

  data | input context reference data
  key | the format character
  option | the format option value, if any

Returns
  the formatted string

Implements Logger::LoggerPattern.