温馨提示×

debian nodejs日志级别怎么调

小樊
42
2026-09-19 08:59:44
栏目: 编程语言

在 Debian 上调整 Node.js 日志级别,要看你是用 Node.js 自带的日志应用框架(如 Express / NestJS),还是 PM2 / systemd 这类进程管理器。下面分情况说明。


一、Node.js 自带(console / process)

Node.js 本身没有统一的日志级别,常用的是:

  • console.log
  • console.info
  • console.warn
  • console.error
  • console.debug

控制 debug 日志

Node.js 通过环境变量控制调试日志:

DEBUG=express:* node app.js
NODE_DEBUG=http,net node app.js

✅ 这是 Node.js 官方调试方式
❌ 不会控制 console.log


二、Express / 框架日志级别

1️⃣ Express + Morgan

const morgan = require('morgan');
app.use(morgan('tiny')); // 或 'dev' / 'common' / 'combined'

级别示例:

  • dev:开发
  • tiny:生产
  • 自定义:
morgan(':method :url :status')

2️⃣ Winston(最常用)

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'

3️⃣ NestJS

app.useLogger(process.env.LOG_LEVEL || 'log');

或:

NODE_ENV=development

三、PM2 日志级别(Debian 常用)

查看日志

pm2 logs

设置日志级别

PM2 本身不控制应用内日志级别,但可以控制输出:

pm2 start app.js --log-level debug

或更常见的是在应用里控制级别 + PM2 只负责收集


四、systemd(Debian 服务)

如果你用 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

如果你能告诉我:

  • 用的什么框架(Express / Nest / 原生)
  • 怎么运行的(node / pm2 / docker / systemd)

我可以直接给你一份可复制的配置

0