如何配置log4js:控制台输出ERROR级、文件输出DEBUG级日志
log4js配置:ERROR级别输出到控制台,DEBUG级别输出到文件
没问题,我来帮你搞定这个log4js的日志配置需求!下面直接上可运行的配置代码,再给你拆解每个部分的作用,确保你能理解为啥这么配。
完整配置代码
首先,先安装log4js(如果还没装的话):
npm install log4js
然后创建你的日志配置文件(比如logger.js):
const log4js = require('log4js'); log4js.configure({ appenders: { // 控制台输出的appender,只处理ERROR及以上级别 console: { type: 'console', level: 'error' }, // 文件输出的appender,处理DEBUG及以上级别 file: { type: 'file', filename: './logs/app.log', level: 'debug' } }, categories: { // 根日志器,设置最低级别为debug,确保所有debug及以上的日志都能被捕获 default: { appenders: ['console', 'file'], level: 'debug' } } }); // 导出日志实例 const logger = log4js.getLogger(); module.exports = logger;
配置细节解释
- 控制台appender:
type: 'console'指定输出到控制台,level: 'error'表示只有error和fatal级别的日志才会在这里输出,info、debug这些低级别的会被过滤掉。 - 文件appender:
type: 'file'指定输出到文件,filename是日志文件的路径(记得确保./logs目录存在,或者换成你想要的路径),level: 'debug'表示debug、info、warn、error、fatal这些级别都会被写入文件。 - categories.default:这里的
level: 'debug'是全局的最低日志级别,必须设置成比文件appender的级别低或者相同,否则文件appender的debug日志会被全局过滤掉。同时把两个appender都加入数组,这样日志会同时流向控制台和文件,但各自按自己的级别过滤。
使用示例
在你的业务代码里引入这个日志器,测试不同级别的输出:
const logger = require('./logger'); logger.trace('这是trace级别的日志'); // 只会出现在文件里 logger.debug('这是debug级别的日志'); // 只会出现在文件里 logger.info('这是info级别的日志'); // 只会出现在文件里 logger.warn('这是warn级别的日志'); // 只会出现在文件里 logger.error('这是error级别的日志'); // 同时出现在控制台和文件里 logger.fatal('这是fatal级别的日志'); // 同时出现在控制台和文件里
如果需要按日期分割日志(比如每天一个文件),可以把文件appender的type改成dateFile,再加上pattern: '.yyyy-MM-dd'这样的配置,灵活调整即可。
内容的提问来源于stack exchange,提问作者balakrishna
相关产品推荐
相关产品推荐

