在 Debian 上调整 Node.js 日志级别,要看你是用 Node.js 自带的日志、应用框架(如 Express / NestJS),还是 PM2 / systemd 这类进程管理器。下面分情况说明。
Node.js 本身没有统一的日志级别,常用的是:
console.logconsole.infoconsole.warnconsole.errorconsole.debugNode.js 通过环境变量控制调试日志:
DEBUG=express:* node app.js
NODE_DEBUG=http,net node app.js
✅ 这是 Node.js 官方调试方式
❌ 不会控制 console.log
const morgan = require('morgan');
app.use(morgan('tiny')); // 或 'dev' / 'common' / 'combined'
级别示例:
dev:开发tiny:生产morgan(':method :url :status')
const winston = require('winston');
const logger = winston.createLogger({
level: 'info', // error warn info http verbose debug silly
transports: [new winston.transports.Console()]
});
修改日志级别:
logger.level = 'debug';
或通过环境变量:
LOG_LEVEL=debug node app.js
level: process.env.LOG_LEVEL || 'info'
app.useLogger(process.env.LOG_LEVEL || 'log');
或:
NODE_ENV=development
pm2 logs
PM2 本身不控制应用内日志级别,但可以控制输出:
pm2 start app.js --log-level debug
或更常见的是在应用里控制级别 + PM2 只负责收集
如果你用 systemd 启动 Node.js:
[Service]
Environment=LOG_LEVEL=info
ExecStart=/usr/bin/node /opt/app/app.js
查看日志:
journalctl -u your-node-service -f
✅ 使用 Winston / Pino
✅ 通过环境变量控制级别
✅ 不同环境不同配置:
# 开发
LOG_LEVEL=debug
# 生产
LOG_LEVEL=warn
如果你能告诉我:
我可以直接给你一份可复制的配置。