]> granicus.if.org Git - python/commitdiff
Added section on logging to one file from multiple processes.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Sat, 15 Aug 2009 23:23:37 +0000 (23:23 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Sat, 15 Aug 2009 23:23:37 +0000 (23:23 +0000)
Doc/library/logging.rst

index c78aeb8dcffaf6d8a34b53d2bcdc5435ded989d4..58bda370479133b47783b3e564367bd730f2014d 100644 (file)
@@ -1316,6 +1316,21 @@ When this script is run, the output should look something like this::
    2008-01-18 14:49:54,033 d.e.f WARNING  IP: 127.0.0.1       User: jim      A message at WARNING level with 2 parameters
 
 
+Logging to a single file from multiple processes
+------------------------------------------------
+
+Although logging is thread-safe, and logging to a single file from multiple
+threads in a single process *is* supported, logging to a single file from
+*multiple processes* is *not* supported, because there is no standard way to
+serialize access to a single file across multiple processes in Python. If you
+need to log to a single file from multiple processes, the best way of doing
+this is to have all the processes log to a :class:`SocketHandler`, and have a
+separate process which implements a socket server which reads from the socket
+and logs to file. (If you prefer, you can dedicate one thread in one of the
+existing processes to perform this function.) The following section documents
+this approach in more detail and includes a working socket receiver which can
+be used as a starting point for you to adapt in your own applications.
+
 .. _network-logging:
 
 Sending and receiving logging events across a network