UNPKG

bunyan-rotating-file-stream

Version:
47 lines (33 loc) 1.01 kB
'use strict'; var EventEmitter = require('events').EventEmitter; var extend = require('lodash/extend'); var optionParser = require('./optionParser'); function ThresholdTrigger(options) { var base = new EventEmitter(); var threshold = 10485760; // 10 MB var bytesWritten = 0; function newFile(data) { bytesWritten = data.stats.size; } function logWrite(data) { if ((bytesWritten > 0) && (bytesWritten + data.logSize > threshold)) { var date = null; try { var log = JSON.parse(data.logstr); date = log.time; } catch (e) {} base.emit('rotate', {date: date}); } else { bytesWritten += data.logSize; } } function shutdown() { } threshold = optionParser.parseSize(options.threshold); return extend({}, { newFile: newFile, logWrite: logWrite, shutdown: shutdown }, base); } module.exports = ThresholdTrigger;