在Ubuntu下,為Node.js應用程序設置日志權限,你需要確保Node.js進程具有足夠的權限來寫入日志文件。以下是一些建議的步驟:
sudo mkdir /var/log/my_node_app
sudo chown $USER /var/log/my_node_app
sudo chmod 755 /var/log/my_node_app
將$USER
替換為運行Node.js應用程序的用戶。
winston
庫,可以在配置中指定日志文件的路徑:const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: '/var/log/my_node_app/app.log' })
]
});
systemd
),請確保服務文件中的用戶具有訪問日志目錄的權限。例如,在/etc/systemd/system/my_node_app.service
文件中:[Service]
User=my_user
WorkingDirectory=/var/www/my_node_app
ExecStart=/usr/bin/node app.js
Restart=always
Environment=NODE_ENV=production
將my_user
替換為運行Node.js應用程序的用戶。
sudo systemctl restart my_node_app
現在,你的Node.js應用程序應該具有將日志寫入/var/log/my_node_app
目錄的權限。