如何在apache中管理mod_wsgi日志?

时间:2016-06-09 10:20:38

标签: python flask mod-wsgi apache2.4

我正在研究瓶子应用程序,我使用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,或者我们可以将这些特定日志重定向到单独的日志文件吗?

2 个答案:

答案 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日志缓存的。