简体   繁体   中英

How to manage mod_wsgi logs in apache?

I am working on flask application and i have used mod_wsgi and Apache to host the flask app. I have setup the logging in app it, but i observe that there are same logs are getting written in apache/logs/error.log like

[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

Due to this error.log is getting polluted with wsgi:error and apache errors its getting difficult to analyse the log file.

Is their any way to stop getting written wsgi.errors in error.log files or may we way to redirect these specific logs to seperate log files ?

I typically add an ErrorLog to my VirtualHost. Here's an example Apache VirtualHost I use:

<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>

Would that do the trick? You can choose a path other than your home directory, of course.

First, you should add ErrorLog within the VirtualHost, Then you should use flask.logging.default_handler to log your message.

And be careful that if your request application does not exist in your threadLocal environment, flask will use std.strerr to log the message, and this will due to the message be cached by the main log instead of VirtualHost log.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM