如何在DigitalOcean上查看Flask应用(Gunicorn+Nginx架构)的错误日志?
当然可行!你完全可以通过SSH终端实时查看Gunicorn的错误输出,也能配置把错误持久化到日志文件里,下面分两种情况给你详细说明:
一、实时查看Gunicorn错误输出(SSH终端)
生产环境里Gunicorn一般都是用systemd服务管理的,这种情况下直接用journalctl命令就能实时跟踪日志:
- 实时查看完整的Gunicorn服务日志:
解释:sudo journalctl -u gunicorn.service -f-u用来指定要查看的服务名称,-f是“实时跟踪”的意思,新产生的日志会立刻输出到你的终端里。 - 要是只想过滤错误相关的内容,可以搭配
grep:sudo journalctl -u gunicorn.service -f | grep -i error
如果是直接在终端前台运行Gunicorn(非生产环境常用),错误会直接输出到当前终端的标准错误流(stderr),你能直接看到,但生产环境不建议这么运行。
二、配置Gunicorn将错误输出到日志文件
如果需要把错误日志持久化保存下来,有两种常用配置方式:
方式1:通过Gunicorn启动命令指定日志文件
- 先创建Gunicorn的日志目录(如果还没有的话):
sudo mkdir -p /var/log/gunicorn - 给日志目录赋予合适的权限(得确保运行Gunicorn的用户有权读写,比如用
www-data或者你的部署用户):sudo chown your_deploy_user:your_deploy_group /var/log/gunicorn - 修改Gunicorn的启动命令,添加日志参数:
解释:gunicorn --workers 3 --bind unix:/path/to/your/app.sock your_app:app --error-logfile /var/log/gunicorn/error.log --access-logfile /var/log/gunicorn/access.log--error-logfile指定错误日志的保存路径,--access-logfile指定访问日志的保存路径,你可以根据自己的需求调整路径和文件名。
方式2:通过systemd服务文件配置日志
如果你的Gunicorn是用systemd管理的,也可以直接在服务文件里配置日志:
- 编辑Gunicorn的systemd服务文件(通常路径是
/etc/systemd/system/gunicorn.service):sudo nano /etc/systemd/system/gunicorn.service - 在
[Service]区块下添加日志相关配置:
解释:[Service] # 保留你已有的其他配置(比如User、WorkingDirectory、ExecStart等) StandardError=append:/var/log/gunicorn/error.log StandardOutput=append:/var/log/gunicorn/access.logStandardError和StandardOutput分别指定错误和标准输出的日志文件,append表示以追加模式写入,不会覆盖原有日志内容。 - 保存文件后,重载systemd配置并重启Gunicorn服务:
sudo systemctl daemon-reload sudo systemctl restart gunicorn.service
配置完成后,你也可以用tail命令实时查看日志文件:
tail -f /var/log/gunicorn/error.log
内容的提问来源于stack exchange,提问作者user791793
相关产品推荐
相关产品推荐

