在 Debian 上修改 Node.js 的“日志级别”,要看你指的是哪一层的日志,不同场景做法不一样。下面按常见情况给你说明。
Node.js 本身没有统一的全局日志级别,日志级别通常由你用的日志库控制。
const winston = require('winston');
const logger = winston.createLogger({
level: 'info', // 可改为 error / warn / info / http / verbose / debug / silly
transports: [new winston.transports.Console()]
});
修改方式:
levellevel: process.env.LOG_LEVEL || 'info'
LOG_LEVEL=debug node app.js
const pino = require('pino');
const logger = pino({ level: process.env.LOG_LEVEL || 'info' });
console.log / error / warn 无法调级别,只能靠代码控制是否打印。
如果你用 systemd 启动 Node.js:
journalctl -u your-node-service.service -f
# /etc/systemd/system/your-node-service.service
[Service]
Environment=LOG_LEVEL=debug
然后:
sudo systemctl daemon-reload
sudo systemctl restart your-node-service
如果你说的是 npm 的日志:
npm config set loglevel verbose
# 可选:silent / error / warn / http / info / verbose / silly
或临时:
npm run start --loglevel verbose
pm2 start app.js --log-level debug
或:
pm2 set pm2:log-level debug
查看:
pm2 logs
node --trace-warnings app.js
node --inspect app.js
NODE_DEBUG=http,net node app.js
| 你想改什么 | 改哪里 |
|---|---|
| 应用日志级别 | 日志库(winston/pino) |
| systemd 服务 | Environment + journalctl |
| npm 日志 | npm config |
| PM2 | pm2 log-level |
| Node 内部 | NODE_DEBUG / --trace |
如果你能告诉我:
我可以给你精确配置示例。