例如,在我的my_application/settings.py文件中,我有几个print
语句,因此:
print( 'running settings.py: ALLOWED_HOSTS: ' )
print( 'n'.join( ALLOWED_HOSTS ) )
在运行nginx和Gunicorn的远程服务器上,这些输出实际在哪里?
注意:据我所知,在任何地方打印ALLOWED_HOSTS
都可能是严重的安全漏洞。这只是一个例子:我正处于学习/实验阶段。
AKX回答后编辑
即使使用-R
开关,我也找不到将stdout
定向到journalctl
的方法。
经过多次实验、挫折和令人困惑的502个错误,我终于找到了一种方法:我的systemd
配置文件现在看起来像这样:
[Unit]
Description=Gunicorn server for mysite.xyz
[Service]
Restart=on-failure
User=mike
WorkingDirectory=/home/mike/sites/mysite.xyz
EnvironmentFile=/home/mike/sites/mysite.xyz/.env
ExecStart=/home/mike/sites/mysite.xyz/virtualenv/bin/gunicorn
--bind unix:/tmp/mysite.xyz.socket
-R
--capture-output
--error-logfile /home/mike/gunicorn-error.log
superlists.wsgi:application
[Install]
WantedBy=multi-user.target
事实上,我发现仅仅包括-R
开关是不够的:您似乎还必须包括--capture-output
开关和--error-logfile
开关(注意,如果您不设置该开关,我不清楚是否有错误输出的默认目的地(。
使用上面的配置文件,settings.py中的stdout
将转到文件~/gunicorn-error.log。Hurrah。
gunicorn的stdout指向的任何位置。
例如,如果在systemd
下运行,它们最终会进入系统日志,您可以使用journalctl
读取该日志。
当您运行gunicorn时,有一个名为--access logfile的特殊参数,它指定要写入的访问日志文件。如果您喜欢stdout,则将'-'设置为值参数。例如:
gunicorn --access-logfile - demoapp.wsgi