使用日期在uwsgi ini文件中创建日志文件时出错

时间:2017-10-24 09:29:50

标签: python nginx flask uwsgi logfiles

我正在尝试使用uWSGI在Nginx上部署我的Flask应用程序。 我使用this教程来部署我的烧瓶应用程序。 我有以下ini文件: extractor.ini

    [uwsgi]
    module = wsgi:app

    master = true 
    processes = 5

    socket = extractor.sock
    chmod-socket = 660

    vacuum = true

    log-date = @(exec://date +%%F-%%H-%%M)
    logdir = /home/rkok/extractor/logs/
    daemonize = %(logdir)uwsgi-%(log-date).log

    die-on-term = true

但是,当我尝试使用

启动项目时
sudo systemctl start extractor

检查服务状态时显示以下错误:

uwsgi[31788]: /bin/sh: 1: date: not found

我已阅读here所有2.x版本应支持@(exec:// date + %% F - %% H - %% M)。 %% F - %% H - %% M应该在ini文件中变成YYYY-mm-dd-HH-MM格式。

我反应说它可能是我的路径,但我不确定如何在ini文件中检查我的路径,因为我使用的是virtualenv而不是我的系统环境。 我的系统设置:

Ubuntu 16.04 LTS x64
Python 3.5.2
Virtualenv 15.1.0
uWSGI 2.0.15
Nginx 1.10.3

所以我的问题是:如何让uWSGI使用ini文件中的系统日期时间生成新的日志文件?

PS。当我遗漏@(exec:// date + %% F - %% H - %% M)部分时,我的烧瓶应用程序成功部署。

1 个答案:

答案 0 :(得分:2)

问题可能是因为PATH环境变量在两种环境中不同。所以你应该使用绝对路径。变化

log-date = @(exec://date +%%F-%%H-%%M)

log-date = @(exec:///bin/date +%%F-%%H-%%M)