在Ubuntu系統中,Node.js應用程序的日志文件存儲位置可能因不同的日志管理方式而異。以下是幾種常見的情況:
使用PM2管理Node.js應用程序日志:
HOME/.pm2/logs/ 目錄下。文件名通常是你的應用程序名稱加上 .err.log 后綴。例如,如果你的應用程序名為 my-nodejs-app,則日志文件路徑為 HOME/.pm2/logs/my-nodejs-app-err.log。查看系統日志:
/var/log/ 目錄下。你可以使用 journalctl 命令來查看與Node.js相關的系統日志。例如,使用以下命令可以查看名為 my-nodejs-app 的Node.js服務的日志:journalctl -u my-nodejs-app -t
其中 my-nodejs-app 是你的Node.js服務名稱。查看應用程序特定的日志文件:
node app.js logs/app.log 2>&1 &
那么應用程序的輸出將被重定向到 logs/app.log 文件中。你可以使用 cat、less 或 tail 等命令來查看這個文件的內容。使用第三方日志管理工具:
使用console.log()和文件系統(fs)模塊:
console.log() 打印信息,并希望將這些信息記錄到文件中,你可以使用 fs.createWriteStream() 方法創建一個日志文件,并在每次執行腳本前清空該文件。使用Winston或Morgan等第三方日志庫:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: '/path/to/your/logs/app.log' }),
],
});
使用systemd服務:
.service 文件中配置日志文件的路徑。例如:[Unit]
Description=My Node.js App
[Service]
ExecStart=/usr/bin/node /path/to/your/app.js --log-file=/var/log/myapp.log
[Install]
WantedBy=multi-user.target
通過上述方法,你可以根據具體需求選擇合適的日志存儲和管理策略。