@livy/rotating-file-handler
v1.0.4
Published
Stores Livy log records in rotating files
Downloads
486
Maintainers
Readme
@livy/rotating-file-handler
This Livy handler stores log records to files that are rotated by date/time or file size and only a limited number of files is kept.
Synchronous logger support: yes
Runtime: Node.js
Basic Example
const { RotatingFileHandler } = require('@livy/rotating-file-handler')
const handler = new RotatingFileHandler('logs-%date%.txt')
Installation
Install it via npm:
npm install @livy/rotating-file-handler
Options
The first argument to this handler's constructor is a file path to write to. It needs to contain a token based on the configured strategy
.
An object of options can be passed to the constructor as the second argument.
The following options are available:
bubble
Type: boolean
Default: true
Description: Controls whether records handled by this handler should bubble up to other handlers.
See also: Bubbling
formatter
Type: FormatterInterface
Default: new LineFormatter()
Description: The formatter to use.
level
Type: LogLevel
Default: 'debug'
Description: Controls which log records should be handled based on their log level.
maxFiles
Type: number
Default: Infinity
Description: Number of log files to keep at maximum.
strategy
Type: 'max-age' | 'max-size'
Default: 'max-age'
Description: The strategy name:
max-age
: Separates log files by the date/time attached to log records thus creates a new file every year/month/day/hour/minute. It requires a%date%
token in the file name.max-size
: Separates log files by the size of the latest log file and thus creates a new file whenever the current file exceeds the size. It requires a%appendix%
token in the file name.
threshold
The value this option takes varies based on the strategy
option:
Strategy max-age
Type: 'minute' | 'hour' | 'day' | 'month' | 'year'
Default: 'day'
Description: The duration unit that separates individual log files. Using 'day'
rotates the log files daily, using 'hour'
rotates them every hour etc.
Strategy max-size
Type: number | string
Description: The file size that separates individual log files. May be a plain number of bytes or a file size string like '200 kb'
, '1.5M'
etc.
Public API
bubble
Controls whether records handled by this handler should bubble up to other handlers. Initially set through the bubble
option.
See also: Bubbling
close()
This handler implements the ClosableHandlerInterface
. On cleanup, it closes the internal file handler.
You usually don't want to call this method manually. It is done automatically when a Node.js process exits / a browser page is closed.
defaultFormatter
(read-only)
The formatter used by this handler if no formatter
option is set.
formatter
This handler supports formatters by implementing the FormattableHandlerInterface
.
level
The minimum log level of a log record to be considered by this handler. Initially set through the level
option.
processors
This handler supports processors by implementing the ProcessableHandlerInterface
.
reset()
This handler implements the ResettableInterface
. Resetting it resets all attached processors.
You usually don't want to call this method manually on an individual handler. Consider calling it on the logger instead.