在 Debian 上调整 Node.js 日志级别,要看你指的是 Node.js 自身运行日志,还是 你写的 Node.js 应用的日志级别。下面分情况说明。
Node.js 本身日志主要靠 环境变量 控制。
NODE_DEBUG用于开启 Node 内部模块的调试日志:
NODE_DEBUG=http,net,tls node app.js
查看所有可调试模块:
node -p "require('module').builtinModules"
NODE_LOG_LEVEL(部分版本)某些 Node 版本(尤其内部或企业版)支持:
NODE_LOG_LEVEL=debug node app.js
注意:标准 Node.js 官方版本并不普遍支持
NODE_LOG_LEVEL
const winston = require('winston');
const logger = winston.createLogger({
level: 'info', // error warn info http verbose debug silly
transports: [new winston.transports.Console()]
});
运行时修改:
LOG_LEVEL=debug node app.js
level: process.env.LOG_LEVEL || 'info'
const pino = require('pino');
const logger = pino({ level: process.env.LOG_LEVEL || 'info' });
级别:
fatal error warn info debug trace
const logLevel = process.env.LOG_LEVEL || 'info';
自行控制:
if (logLevel === 'debug') {
console.log('debug info');
}
如果你用 systemd 运行 Node 服务:
sudo systemctl edit mynode.service
添加:
[Service]
Environment=LOG_LEVEL=debug
sudo systemctl daemon-reload
sudo systemctl restart mynode
journalctl -u mynode -f
pm2 start app.js --env production
或在 ecosystem.config.js:
env: {
LOG_LEVEL: 'debug'
}
✅ 生产环境:
info 或 warnwinston / pinojournalctl 看日志✅ 调试时:
debug / trace如果你能告诉我:
我可以给你更精确的配置示例。