intel icon indicating copy to clipboard operation
intel copied to clipboard

Add date rolling file appender

Open ShemTovYosef opened this issue 10 years ago • 3 comments

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

ShemTovYosef avatar Mar 19 '14 11:03 ShemTovYosef

sounds reasonable

seanmonstar avatar Mar 19 '14 16:03 seanmonstar

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.

Delagen avatar Dec 24 '14 12:12 Delagen

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"
        }

Delagen avatar Dec 24 '14 12:12 Delagen