NodeJS file stream rotator
To provide an automated rotation (roll-over) of Express/Connect logs based on date.
npm install file-stream-rotator
More detailed API documentation is in the next section.
var fileStreamRotator = require("file-stream-rotator");
// Default date format, added at the end of the file
var rotatingLogStream = fileStreamRotator.getStream({
filename: "/tmp/test.log",
frequency: "daily"
});
// Default date format, added using filename pattern
var rotatingLogStream = fileStreamRotator.getStream({
filename: "/tmp/test-%DATE%.log",
frequency: "daily"
});
// Custom date format, added using filename pattern
var rotatingLogStream = fileStreamRotator.getStream({
filename: "/tmp/test-%DATE%.log",
frequency: "daily",
dateFormat: "YYYY-MM-DD"
});
Example use in Express:
app.use(express.logger({
stream: rotatingLogStream,
format: "combined"
}));
Creates a new rotating stream. filename
and frequency
are required options.
- filename: The path to use for saving the logfiles. You can currently specify it in two different ways:
"/path/to/file-%DATE%.log"
: The %DATE% string will be replaced with the actual timestamp for the log. Eg./path/to/file-201504210000.log
"/path/to/file.log"
: The timestamp will be appended with a dot. Eg./path/to/file.log.201504210000
- frequency: The roll-over frequency, ie. how frequently a new logfile should be created. Valid formats:
daily
: Short-hand option for1d
.Xd
: Every X days, eg.2d
.Xh
: Every X hours, eg.2h
.Xm
: Every X minutes, eg.2m
.
- dateFormat: Optional, defaults to
YYYYMMDDHHmm
. The date format to use in the log filename. Takes Moment.js date formats.
- The
verbose
option no longer exists. To get information about log roll-overs, use theDEBUG
environment variable (more info). date_format
has been renamed todateFormat
for naming consistency.- Only
.getStream
is still exposed, all other methods are internal. - The
test
frequency is no longer supported.
The npm module for this library is maintained by:
file-stream-rotator is licensed under the MIT license.