在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
目录的权限。