summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2009-08-15 23:23:12 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2009-08-15 23:23:12 (GMT)
commit3a0dc309479e0b65bc51f14627d32eb229b44b0b (patch)
tree9dd5c2030de2ad4c76fa1da09f64aa0873ac53e5 /Doc/library
parentc0ba828857fa1a4f726a113c811badb5f2259bb9 (diff)
downloadcpython-3a0dc309479e0b65bc51f14627d32eb229b44b0b.zip
cpython-3a0dc309479e0b65bc51f14627d32eb229b44b0b.tar.gz
cpython-3a0dc309479e0b65bc51f14627d32eb229b44b0b.tar.bz2
Added section on logging to one file from multiple processes.
Diffstat (limited to 'Doc/library')
-rw-r--r--Doc/library/logging.rst16
1 files changed, 16 insertions, 0 deletions
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index 2030d98..5c8599a 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -1337,6 +1337,22 @@ When this script is run, the output should look something like this::
The :class:`LoggerAdapter` class was not present in previous versions.
+.. _multiple-processes:
+
+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: