mirror of https://github.com/python/cpython
Added section on logging to one file from multiple processes.
This commit is contained in:
parent
c0ba828857
commit
3a0dc30947
|
@ -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.
|
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:
|
.. _network-logging:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue