我正在研究瓶子应用程序,我使用mod_wsgi和Apache来托管烧瓶应用程序。我已经在应用程序中设置了日志记录,但我发现在apache / logs / error.log中有相同的日志 喜欢
[wsgi:error] ... BACK TO THE BROWSER
[wsgi:error] ... Selected records from table
[wsgi:error] ... mod_wsgi (pid=1654): Exception occurred processing WSGI script '/tmp/mod_wsgi-localhost:8000:0/htdocs/'.
[wsgi:error] ... ID 1123 Inserted in table
由于此错误。日志因wsgi:error和apache错误而受到污染,因此很难分析日志文件。
他们是否可以停止在error.log文件中编写wsgi.errors,或者我们可以将这些特定日志重定向到单独的日志文件吗?
答案 0 :(得分:0)
我通常会在我的VirtualHost中添加一个ErrorLog。这是我使用的Apache VirtualHost示例:
<VirtualHost *:443>
ServerName yourservername.com
ErrorLog /home/yourusername/apache_errors.log
WSGIDaemonProcess yourproject-https python-home=/home/yourusername/.virtualenvs/yourproject
WSGIScriptAlias /yourproject /var/www/html/yourproject/yourproject/wsgi.py process-group=yourproject-https application-group=yourproject-https
WSGIProcessGroup yourproject-https
Alias /yourproject/static/ /var/www/html/yourproject/static/
SSLENGINE on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLProtocol all -SSLv2
</VirtualHost>
这会诀窍吗?当然,您可以选择主目录以外的路径。
答案 1 :(得分:0)
首先,应在VirtualHost中添加ErrorLog,然后应使用flask.logging.default_handler
来记录消息。
请注意,如果您的请求应用程序不在您的threadLocal环境中,flask将使用std.strerr记录消息,这是由于消息是由主日志而不是VirtualHost日志缓存的。