温馨提示×

linux nodejs日志怎么开启

小樊
49
2026-09-08 14:04:27
栏目: 编程语言

在 Linux 上开启 Node.js 日志,通常有几种常见方式,取决于你是本地运行 Node 脚本用 PM2 管理、还是写 Web 服务(如 Express)。下面按场景说明:


一、最基础:直接打印日志(标准输出)

Node.js 默认会把日志输出到终端:

node app.js

常见写法:

console.log('普通日志');
console.error('错误日志');

日志会输出到:

  • stdout(控制台)
  • 可重定向到文件:
node app.js > app.log 2>&1

二、把日志写入文件(推荐基础方案)

node app.js >> app.log 2>&1 &

说明:

  • >>:追加写入
  • 2>&1:错误也写入
  • &:后台运行

三、使用 PM2(生产环境最常用 ✅)

1. 安装 PM2

npm install -g pm2

2. 启动项目

pm2 start app.js

3. 查看日志

pm2 logs
pm2 logs app

4. 日志文件位置

默认在:

~/.pm2/logs/

5. 自定义日志路径

pm2 start app.js \
  --log /var/log/node/app.log \
  --error /var/log/node/app-error.log \
  --output /var/log/node/app-out.log

四、Express / Web 服务日志

使用 morgan(HTTP 请求日志)

npm install morgan
const express = require('express');
const morgan = require('morgan');
const fs = require('fs');

const app = express();
const logStream = fs.createWriteStream('/var/log/node/access.log', { flags: 'a' });

app.use(morgan('combined', { stream: logStream }));

五、使用专业日志库(推荐)

winston 示例

npm install winston
const winston = require('winston');

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({ filename: '/var/log/node/app.log' })
  ]
});

logger.info('服务启动');

六、systemd 方式(服务器标准做法)

如果你用 systemd 管理 Node 服务:

[Service]
ExecStart=/usr/bin/node /opt/app/app.js
StandardOutput=append:/var/log/node/app.log
StandardError=append:/var/log/node/error.log

日志会由系统统一管理:

journalctl -u node-app

总结建议

场景 推荐方式
本地调试 console.log
生产运行 PM2
服务器标准 systemd + 日志文件
Web 请求 morgan
复杂日志 winston / pino

如果你能告诉我:

  • 前端 / 后端 / 脚本
  • 是否用 PM2 / Docker / systemd

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

0