温馨提示×

Nodejs日志级别怎么设置

小樊
42
2026-07-18 19:56:00
栏目: 编程语言

在 Node.js 里日志级别的设置方式取决于你用的是什么日志库。下面按常见场景给你一个完整说明。


一、如果不使用第三方库(console)

Node.js 原生只有 console没有日志级别概念

console.log('info')
console.warn('warn')
console.error('error')

✅ 简单项目可用
❌ 无法控制级别、无法分级过滤


二、使用主流日志库(推荐)

✅ 1. Winston(最常用)

安装

npm install winston

设置日志级别

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info', // 日志级别
  format: winston.format.simple(),
  transports: [
    new winston.transports.Console()
  ]
});

logger.error('error 日志');
logger.warn('warn 日志');
logger.info('info 日志');
logger.debug('debug 日志'); // 不会输出

日志级别顺序(默认)

error > warn > info > verbose > debug > silly

设置 level: 'info' 时,只会输出 info 及以上级别


✅ 通过环境变量控制级别(推荐做法)

level: process.env.LOG_LEVEL || 'info'
LOG_LEVEL=debug node app.js

✅ 2. Pino(高性能)

安装

npm install pino

设置级别

const pino = require('pino');

const logger = pino({
  level: 'info'
});

logger.info('info');
logger.debug('debug'); // 不输出

环境变量方式

PINOA_LEVEL=debug node app.js

三、Express / Koa 中的日志级别

示例:Express + Morgan

npm install morgan
const morgan = require('morgan');

app.use(morgan('dev')); // dev / tiny / combined

Morgan 本身不是完整日志系统,通常配合 Winston / Pino 使用


四、不同环境推荐配置

环境 推荐级别
开发 debug
测试 info
生产 warn / error

示例:

level: process.env.NODE_ENV === 'production' ? 'warn' : 'debug'

五、总结一句话

Node.js 本身没有日志级别,日志级别由日志库决定。

✅ 推荐组合:

  • Winston:功能全、配置灵活
  • Pino:性能高、适合高并发

如果你愿意,可以告诉我:

  • 用的是 Express / Koa / NestJS
  • 前端工具 / 后端服务 / CLI 工具

我可以给你一个完全贴合你项目的日志配置示例

0