diff --git a/lib/appenders/dateFile.js b/lib/appenders/dateFile.js index 31b94f0c..619396a7 100644 --- a/lib/appenders/dateFile.js +++ b/lib/appenders/dateFile.js @@ -22,17 +22,26 @@ function appender( // options should work for dateFile as well. options.maxSize = options.maxLogSize; + let alive = true; + const logFile = new streams.DateRollingFileStream( filename, pattern, options ); + logFile.on('error', (err) => { + alive = false; + console.error('log4js.dateFileAppender - Writing to file %s, error happened ', filename, err); //eslint-disable-line + }); logFile.on("drain", () => { process.emit("log4js:pause", false); }); const app = function (logEvent) { + if (!alive) { + return; + } if (!logFile.write(layout(logEvent, timezoneOffset) + eol, "utf8")) { process.emit("log4js:pause", true); } diff --git a/lib/appenders/file.js b/lib/appenders/file.js index 696e04ab..cdcba18f 100644 --- a/lib/appenders/file.js +++ b/lib/appenders/file.js @@ -20,9 +20,6 @@ function openTheStream(file, fileSize, numFiles, options) { numFiles, options ); - stream.on('error', (err) => { - console.error('log4js.fileAppender - Writing to file %s, error happened ', file, err); //eslint-disable-line - }); stream.on('drain', () => { process.emit("log4js:pause", false); }); @@ -58,9 +55,18 @@ function fileAppender(file, layout, logSize, numBackups, options, timezoneOffset timezoneOffset, ')' ); + let alive = true; + let writer = openTheStream(file, logSize, numBackups, options); + writer.on('error', (err) => { + alive = false; + console.error('log4js.fileAppender - Writing to file %s, error happened ', file, err); //eslint-disable-line + }); const app = function (loggingEvent) { + if (!alive) { + return; + } if (options.removeColor === true) { // eslint-disable-next-line no-control-regex const regex = /\x1b[[0-9;]*m/g;