在 Linux 下运行 Node.js 应用时,**日志级别(log level)**通常取决于你使用的日志库或框架。下面按常见场景给你一个清晰总结。
console.log('info')
console.error('error')
console.warn('warn')
✅ 没有“级别开关”,只能自己控制是否输出
❌ 不适合生产环境
npm install winston
const winston = require('winston');
const logger = winston.createLogger({
level: 'info', // 日志级别
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'app.log' })
]
});
error < warn < info < http < verbose < debug < silly
level: process.env.LOG_LEVEL || 'info'
LOG_LEVEL=debug node app.js
npm install pino
const pino = require('pino');
const logger = pino({ level: process.env.LOG_LEVEL || 'info' });
logger.info('hello');
级别:
fatal error warn info debug trace
npm install log4js
const log4js = require('log4js');
log4js.configure({
level: 'info',
appenders: { out: { type: 'console' } },
categories: { default: { appenders: ['out'], level: 'info' } }
});
PM2 本身不直接控制“应用日志级别”,但可配合环境变量:
pm2 start app.js --env production --log-level error
或:
LOG_LEVEL=debug pm2 restart app
如果你用 systemd 启动 Node:
[Service]
Environment=LOG_LEVEL=debug
ExecStart=/usr/bin/node /opt/app/app.js
✅ 使用 Winston / Pino
✅ 日志级别用环境变量控制
✅ 生产环境默认 info 或 warn
✅ 调试时临时切 debug
如果你能告诉我:
我可以直接给你一套可复制的配置。