You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:55:02