Записывать журналы в файл с помощью log4js в node js
мой код:
log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');
logger.setLevel('DEBUG');
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');
он создает файл с именем "сыр", но внутри него ничего нет.
Как написать контент в этом?
Ответы
Ответ 1
Это решение поможет вам создать папку журналов и три файла error.log, debug.log и info.log в журнале папок ur с журналами. Работал для меня. Спасибо.
var log4js = require('log4js'); // include log4js
log4js.configure({ // configure to use all types in different files.
appenders: [
{ type: 'file',
filename: "/logs/error.log", // specify the path where u want logs folder error.log
category: 'error',
maxLogSize: 20480,
backups: 10
},
{ type: "file",
filename: "/logs/info.log", // specify the path where u want logs folder info.log
category: 'info',
maxLogSize: 20480,
backups: 10
},
{ type: 'file',
filename: "/logs/debug.log", // specify the path where u want logs folder debug.log
category: 'debug',
maxLogSize: 20480,
backups: 10
}
]
});
var loggerinfo = log4js.getLogger('info'); // initialize the var to use.
var loggererror = log4js.getLogger('error'); // initialize the var to use.
var loggerdebug = log4js.getLogger('debug'); // initialize the var to use.
loggerinfo.info('This is Information Logger');
loggererror.info('This is Error Logger');
loggerdebug.info('This is Debugger');
Ответ 2
В приведенном выше коде вы пропускаете объявление logger: добавьте строку var logger = log4js.getLogger('cheese');
Весь блок кода будет выглядеть следующим образом:
var log4js = require('log4js');
log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');
var logger = log4js.getLogger('cheese');
logger.setLevel('DEBUG');
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');
Ссылка
Ответ 3
В версии 2.x.
Вам нужно будет сделать что-то вроде этого:
var log4js = require('log4js');
log4js.configure({
appenders: { 'file': { type: 'file', filename: 'logs/cheese.log' } },
categories: { default: { appenders: ['file'], level: 'debug' } }
});
var logger = log4js.getLogger('cheese');
logger.setLevel('DEBUG');
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');
Если вы хотите динамически создавать файлы на основе свойств в сообщении журнала (например, имя файла), а затем взгляните на multiFile appender.
Ответ 4
Log4js имеет функцию для многофайловой конфигурации. Смотри здесь
log4js.configure({
appenders: {
out: { type: 'stdout' },
afile: { type: 'multiFile', base: 'logs/', property: 'categoryName', extension: '.log' }
},
categories: {
default: { appenders: ['out'], level: 'info' },
tofile: { appenders: ['afile'], level: 'debug' }
}
});
Затем для начала регистрации в файле logs/xyz.log
:
const xyzlog = log4js.getLogger('tofile.xyz');
xyzlog.info('Hello!');