温馨提示×

debian nodejs日志路径怎么改

小樊
39
2026-10-04 05:46:19
栏目: 编程语言

在 Debian 上修改 Node.js 的日志路径,取决于你是怎么运行 Node.js 的。下面按常见场景说明。


一、Node.js 应用自身写日志(最常见)

Node.js 本身没有统一的系统日志路径,日志路径是你在代码里指定的,例如:

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

✅ 修改方法:

  • 直接改代码里的日志路径
  • 或改成从环境变量读取:
const logPath = process.env.LOG_PATH || '/var/log/myapp/app.log';

二、使用 PM2 管理 Node.js(推荐)

默认日志路径

~/.pm2/logs/

修改日志路径

方式 1:启动指定

pm2 start app.js --log /var/log/myapp/app.log

方式 2:ecosystem.config.js

module.exports = {
  apps: [{
    name: 'myapp',
    script: 'app.js',
    error_file: '/var/log/myapp/err.log',
    out_file: '/var/log/myapp/out.log',
    log_file: '/var/log/myapp/combined.log'
  }]
}

然后:

pm2 start ecosystem.config.js

三、使用 systemd 运行 Node.js(Debian 官方推荐)

默认日志路径

journalctl -u yourapp.service

想写到文件而不是 journald

编辑 service 文件:

sudo vim /etc/systemd/system/yourapp.service

示例:

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

然后:

sudo systemctl daemon-reload
sudo systemctl restart yourapp

✅ 日志就会写到:

/var/log/myapp/out.log
/var/log/myapp/err.log

四、Nginx 反代 Node.js(常见)

Node 日志在 Node 自己那里
Nginx 日志在:

/var/log/nginx/access.log
/var/log/nginx/error.log

修改路径:

sudo vim /etc/nginx/sites-enabled/default
access_log /var/log/nginx/myapp_access.log;
error_log /var/log/nginx/myapp_error.log;

五、快速对照表

运行方式 日志位置
裸 node 代码指定
PM2 ~/.pm2/logs
systemd journald / 自定义文件
Docker docker logs

如果你能告诉我:

  • ✅ 用的是 PM2 / systemd / Docker / 裸跑
  • ✅ Debian 版本
  • ✅ Node 版本

我可以直接给你一份可直接用的配置。

0 踩