Thanks for all explanations.

I have tried udp logging, it is almost that I was looking for, but at the end I have decided to use zeromq logging, because implementation of zeromq logging server looks easier for me then implementation of such udp server.

On 03/27/2013 09:59 PM, Roberto De Ioris wrote:
Not exactly. I have two instances of uwsgi, one hosts web apps, and
other is used as logging server.

First I run with following command and configuration files:

command:

     /home/www/src/uwsgi/uwsgi --ini /home/www/uwsgi.conf

uwsgi.conf:

     [uwsgi]
     emperor = /home/www/uconfigs
     master = true
     die-on-term = true
     enable-threads = true
     daemonize = /home/www/logs/uwsgi.log

config of one of the applications (uatrains.ini):

     [uwsgi]
     chdir = /home/www
     socket = /home/www/sockets/uatrains.socket
     wsgi = uatrains
     ini = /home/www/uconfigs/common.conf

common.conf:

     [uwsgi]
     callable = app
     enable-threads = true
     req-logger = socket:127.0.0.1:18109

Second instance I have tried to run in three ways:

   * executing command '/home/www/src/uwsgi/uwsgi --udp 127.0.0.1:18109',
     in this case everything works fine, I have request log entries
     written to stdout.
   * executing with command '/home/www/src/uwsgi/uwsgi --udp
     127.0.0.1:18109 --wsgi-file udptest.py --callable app', where
     content of udptest.py file is:

         import smtplib
         from email.mime.text import MIMEText


         def app(env, start_res):
              start_res('200 OK', [('Content-Type', 'text/html')])

              sender = '[email protected] (www)'
              recipient = '[email protected]'

              if 'headers' not in data:
                  data['headers'] = ''

              text = 'Yo!!!'

              msg = MIMEText(text)
              msg['Subject'] = data['subject']
              msg['From'] = sender
              msg['To'] = recipient

              s = smtplib.SMTP('localhost')
              s.sendmail(sender, recipient, msg.as_string())
              s.quit()

              return bytes('', 'utf-8')

     in this case I also have request log entries written to stdout, but
     wsgi app isn't executing.

   * executing with command '/home/www/src/uwsgi/uwsgi --udp
     127.0.0.1:18109 --ini cgi.conf', where cgi.conf is:

         [uwsgi]
         plugins = cgi
         cgi = /=/home/www/cgi
         cgi-allowed-ext = .py
         cgi-helper = .py=python
         cgi-index = index.py

     and aindex.py is:

         import smtplib
         from email.mime.text import MIMEText

         start_res('200 OK', [('Content-Type', 'text/html')])

         sender = '[email protected] (www)'
         recipient = '[email protected]'

         text = 'Yo!!!'

         msg = MIMEText(text)
         msg['Subject'] = data['subject']
         msg['From'] = sender
         msg['To'] = recipient

         s = smtplib.SMTP('localhost')
         s.sendmail(sender, recipient, msg.as_string())
         s.quit()

     in this case I also, as before, have request log entries written to
     stdout, but, this time, cgi app isn't executing.

Under not executing wsgi and cgi apps I mean that I haven't receive test
emails.


On 03/27/2013 06:32 PM, Roberto De Ioris wrote:
Is it possible to run wsgi or cgi python script inside uwsgi which
started as udp log server in order to process received log entries?
Thanks.

You mean adding --udp to an uWSGI instance running a web application ?

If it is what you mean, yes there are no problems in it (for example it
is
a common setup for multicast logging where all of the nodes in a cluster
receive a copy of the logline)




Are you trying to execute code when you receive a logline ?

If yes, give a look at the alarm subsystem:

http://uwsgi-docs.readthedocs.org/en/latest/AlarmSubsystem.html

you can pipe specific logs (matching the specified regexp) to a command,
a mule or directly rise a uWSGI signal.

Pay attention to what your alarms generate on stdout/stderr you could
easily generate loops (so avoid defining rules for .* or ^)



_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to