intel
intel copied to clipboard
Add date rolling file appender
Current rolling fie appender supports only limits by size but wants to split files by dates as backups. E.g., server.log - current log file server.log.2014-03-18 - yesterday file server.log.2014-03-17 - two days ago
sounds reasonable
I think you can write your own handler and use stream-rotate
for example because rolling
handler deleted from source. And this issue can be closed.
For example:
"use strict";
var _ = require("lodash");
var path = require("path");
var util = require("util");
var StreamRotate = require("stream-rotate");
var StreamHandler = require("intel").handlers.Stream;
function RotateHandler(options) {
if (_.isString(options)) {
options = {file: options};
}
this._file = options.file;
options.stream = this._open(options);
StreamHandler.call(this, options);
}
util.inherits(RotateHandler, StreamHandler);
RotateHandler.prototype._open = function open(options) {
return new StreamRotate(_.assign({
/*jshint camelcase:false*/
ts_format: "YYYY-MM-DD"
}, options || {},
{
path: path.dirname(options.file),
name: path.basename(options.file, path.extname(options.file)),
ext: path.extname(options.file).replace(/^\./, "")
}));
};
module.exports = RotateHandler;
and use it as
{
"class": "module/....../rotate",
"level": "verbose",
"file": "logs/log.log",
"formatter": "common",
"freq": "1d"
}