This commit is contained in:
Gareth Jones 2019-11-19 08:27:33 +11:00
commit d7cf0ffe31
2 changed files with 39 additions and 1 deletions

View File

@ -28,8 +28,14 @@ function appender(
options
);
logFile.on("drain", () => {
process.emit("log4js:pause", false);
});
const app = function (logEvent) {
logFile.write(layout(logEvent, timezoneOffset) + eol, 'utf8');
if (!logFile.write(layout(logEvent, timezoneOffset) + eol, "utf8")) {
process.emit("log4js:pause", true);
}
};
app.shutdown = function (complete) {

View File

@ -34,5 +34,37 @@ tap.test("Drain event test", batch => {
t.end();
});
batch.test("Should emit pause event and resume when logging in a date file with high frequency", (t) => {
// Generate date file logger with 5MB of highWaterMark config
log4js.configure({
appenders: {
file: { type: "dateFile", filename: "logs/date-file-drain.log", highWaterMark: 5 * 1024 * 1024 }
},
categories: {
default: { appenders: ["file"], level: "debug" }
}
});
let onPause = false;
let onResume = false;
process.on("log4js:pause", value => {
if (value) {
onPause = true;
} else {
onResume = true;
}
});
const logger = log4js.getLogger();
while (onPause === false && onResume === false) {
if (onPause === false)
logger.info("This is a test for emitting drain event in date file logger");
}
t.end();
});
batch.end();
});