Узел log4js maxlogsize не работает
Я пытаюсь получить переписанный файл журнала менее 20 МБ. Я настроил мой файловый app log4js с параметром maxlogsize равным 20 МБ, но он не работает. Logger записывать файлы журнала больше, чем 20 МБ. Так может кто-то знает как решить эту проблему?
"use strict";
let path = require("path");
let log4js = require('log4js');
let $depth = 10;
log4js.configure({
appenders: [
{
type: "console",
layout: {
type : "pattern",
pattern : "[%d{ISO8601}] %[%p {%x{ln}} -%]\t%m",
tokens: {
ln : function() {
var errorStack = (new Error).stack.split("\n");
var tempLocation = errorStack[$depth];
if ( typeof tempLocation !== 'undefined' && tempLocation ) {
return tempLocation .replace(/^\s+at\s+(\S+)\s\((.+?)([^\/]+):(\d+):\d+\)$/, function (){
return arguments[1] +' '+ arguments[3] +' line '+ arguments[4];
});
}
}
}
}
},
{
type: "file",
filename: __dirname + '/../data/' + "/smartHomeServer.log",
layout: {
type : "pattern",
pattern : "[%d{ISO8601}] %[%p {%x{ln}} -%]\t%m",
maxLogSize: 20971520,
backups: 1,
tokens: {
ln : function() {
var errorStack = (new Error).stack.split("\n");
var tempLocation = errorStack[$depth];
if ( typeof tempLocation !== 'undefined' && tempLocation ) {
return tempLocation.replace(/^\s+at\s+(\S+)\s\((.+?)([^\/]+):(\d+):\d+\)$/, function () {
return arguments[1] + ' ' + arguments[3] + ' line ' + arguments[4];
});
}
}
}
}
}
]
});
let log = log4js.getLogger();
module.exports = log;
1 ответ
Решение
Фиксированный appender:
{
type: "file",
filename: __dirname + '/../data/' + "/smartHomeServer.log",
maxLogSize: 20971520,
backups: 1,
layout: {
type : "pattern",
pattern : "[%d{ISO8601}] %[%p {%x{ln}} -%]\t%m",
tokens: {
ln : function() {
var errorStack = (new Error).stack.split("\n");
var tempLocation = errorStack[$depth];
if ( typeof tempLocation !== 'undefined' && tempLocation ) {
return tempLocation.replace(/^\s+at\s+(\S+)\s\((.+?)([^\/]+):(\d+):\d+\)$/, function () {
return arguments[1] + ' ' + arguments[3] + ' line ' + arguments[4];
});
}
}
}
}
}