diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2009-08-15 23:23:37 (GMT) |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2009-08-15 23:23:37 (GMT) |
commit | a7471bf334036b79109858c10203d98a87ea37ee (patch) | |
tree | abc688afc0fa4f012cef24fb5c7e78ccddc84f2f /Doc | |
parent | 4d51aaaa46b4fc4acf84330971335a1c4d9bbf80 (diff) | |
download | cpython-a7471bf334036b79109858c10203d98a87ea37ee.zip cpython-a7471bf334036b79109858c10203d98a87ea37ee.tar.gz cpython-a7471bf334036b79109858c10203d98a87ea37ee.tar.bz2 |
Added section on logging to one file from multiple processes.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/logging.rst | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst index c78aeb8..58bda37 100644 --- a/Doc/library/logging.rst +++ b/Doc/library/logging.rst @@ -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 |