From f5c73efc44eeb66786756fc7c8648ef4881075ad Mon Sep 17 00:00:00 2001 From: Gareth Jones Date: Wed, 29 May 2019 08:32:38 +1000 Subject: [PATCH] fix(#887): map maxLogSize to maxSize --- lib/appenders/dateFile.js | 4 ++++ test/tap/dateFileAppender-test.js | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/lib/appenders/dateFile.js b/lib/appenders/dateFile.js index 9d2c385..bbce062 100644 --- a/lib/appenders/dateFile.js +++ b/lib/appenders/dateFile.js @@ -20,6 +20,10 @@ function appender( options, timezoneOffset ) { + // the options for file appender use maxLogSize, but the docs say any file appender + // options should work for dateFile as well. + options.maxSize = options.maxLogSize; + const logFile = new streams.DateRollingFileStream( filename, pattern, diff --git a/test/tap/dateFileAppender-test.js b/test/tap/dateFileAppender-test.js index aa16c96..0078d03 100644 --- a/test/tap/dateFileAppender-test.js +++ b/test/tap/dateFileAppender-test.js @@ -5,6 +5,7 @@ const path = require('path'); const fs = require('fs'); const EOL = require('os').EOL || '\n'; const format = require('date-format'); +const sandbox = require('@log4js-node/sandboxed-module'); const log4js = require('../../lib/log4js'); function removeFile(filename) { @@ -133,5 +134,26 @@ test('../../lib/appenders/dateFile', (batch) => { }); }); + batch.test('should map maxLogSize to maxSize', (t) => { + const fakeStreamroller = {}; + class DateRollingFileStream { + constructor(filename, pattern, options) { + fakeStreamroller.filename = filename; + fakeStreamroller.pattern = pattern; + fakeStreamroller.options = options; + } + } + fakeStreamroller.DateRollingFileStream = DateRollingFileStream; + const dateFileAppenderModule = sandbox.require('../../lib/appenders/dateFile', { + requires: { streamroller: fakeStreamroller } + }); + dateFileAppenderModule.configure({ + filename: 'cheese.log', pattern: 'yyyy', maxLogSize: 100 + }, { basicLayout: () => {} }); + + t.equal(fakeStreamroller.options.maxSize, 100); + t.end(); + }); + batch.end(); });