在 Node.js 里日志级别的设置方式取决于你用的是什么日志库。下面按常见场景给你一个完整说明。
Node.js 原生只有 console,没有日志级别概念:
console.log('info')
console.warn('warn')
console.error('error')
✅ 简单项目可用
❌ 无法控制级别、无法分级过滤
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
npm install pino
const pino = require('pino');
const logger = pino({
level: 'info'
});
logger.info('info');
logger.debug('debug'); // 不输出
PINOA_LEVEL=debug node app.js
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 本身没有日志级别,日志级别由日志库决定。
✅ 推荐组合:
如果你愿意,可以告诉我:
我可以给你一个完全贴合你项目的日志配置示例。