用log4js在新的不同文件中写入日志吗?
我想将日志写入不同的文件。
const log4js = require('log4js');
log4js.configure({
appenders: { integra: { type: 'file', filename: './logs/doc.log' } },
categories: { default: { appenders: ['doc'], level: 'error' } }
});
const logger = log4js.getLogger('doc');
module.exports = logger
根据上面的代码,我只能配置一次日志。但是我想为每个日志动态地写一个日志文件。在上述情况下,我只能写一个文件。我需要一种可以写入新日志文件的方法。我想在不同的路径上写入多个日志文件。
回答如下:使用MultiFile Appender将日志动态写入多个文件,您的log4js配置看起来像这样:
appenders: { integra: { type: 'multiFile', base: 'logs/', property: 'prop', extension: '.log'} },
其中:
- base:生成的日志文件名的基础部分
- 属性:用于分割文件的值
- 扩展名:生成的日志文件名的后缀。
这是一个用于为每个用户创建日志文件的示例:
const log4js = require('log4js');
const uuidv1 = require('uuid/v1'); //used for generating random string
log4js.configure({
appenders: {
everything: {
type: 'multiFile', base: 'logs/', property: 'userID', extension: '.log'
}
},
categories: {
default: { appenders: [ 'everything' ], level: 'debug'}
}
});
const userLogger = log4js.getLogger('user');
userLogger.addContext('userID', uuidv1());
userLogger.info('New file created');
userLogger.addContext('userID', uuidv1());
userLogger.info('New file created');