温馨提示×

debian nodejs日志级别如何调

小樊
40
2026-10-04 05:48:20
栏目: 编程语言

在 Debian 上调整 Node.js 日志级别,要看你指的是 Node.js 自身运行日志,还是 你写的 Node.js 应用的日志级别。下面分情况说明。


一、Node.js 自身运行日志(调试 Node 内部)

Node.js 本身日志主要靠 环境变量 控制。

1. 使用 NODE_DEBUG

用于开启 Node 内部模块的调试日志:

NODE_DEBUG=http,net,tls node app.js

查看所有可调试模块:

node -p "require('module').builtinModules"

2. 使用 NODE_LOG_LEVEL(部分版本)

某些 Node 版本(尤其内部或企业版)支持:

NODE_LOG_LEVEL=debug node app.js

注意:标准 Node.js 官方版本并不普遍支持 NODE_LOG_LEVEL


二、应用日志级别(最常见)

情况 1:使用日志库(如 winston / pino / log4js)

✅ Winston

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'

✅ Pino

const pino = require('pino');
const logger = pino({ level: process.env.LOG_LEVEL || 'info' });

级别:

fatal error warn info debug trace

情况 2:使用 console(不推荐生产)

const logLevel = process.env.LOG_LEVEL || 'info';

自行控制:

if (logLevel === 'debug') {
  console.log('debug info');
}

三、通过 systemd(Debian 常见)

如果你用 systemd 运行 Node 服务:

1. 编辑 service 文件

sudo systemctl edit mynode.service

添加:

[Service]
Environment=LOG_LEVEL=debug

2. 重载并重启

sudo systemctl daemon-reload
sudo systemctl restart mynode

3. 查看日志

journalctl -u mynode -f

四、Nginx / PM2(补充)

PM2

pm2 start app.js --env production

或在 ecosystem.config.js:

env: {
  LOG_LEVEL: 'debug'
}

五、推荐做法(总结)

✅ 生产环境:

  • info 或 warn
  • 使用 winston / pino
  • 用 journalctl 看日志

✅ 调试时:

  • debug / trace
  • 通过环境变量控制

如果你能告诉我:

  • 用的是 原生 Node / Express / NestJS
  • 是否用 systemd / pm2 / docker

我可以给你更精确的配置示例。

0 踩