bpo-43731: Add an `encoding` parameter to logging.fileConfig() (GH-25273)

This commit is contained in:
Inada Naoki 2021-04-13 18:17:03 +09:00 committed by GitHub
parent a4833883c9
commit c2b7a66b91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 3 deletions

View File

@ -77,7 +77,7 @@ in :mod:`logging` itself) and defining handlers which are declared either in
.. versionadded:: 3.2
.. function:: fileConfig(fname, defaults=None, disable_existing_loggers=True)
.. function:: fileConfig(fname, defaults=None, disable_existing_loggers=True, encoding=None)
Reads the logging configuration from a :mod:`configparser`\-format file. The
format of the file should be as described in
@ -111,6 +111,8 @@ in :mod:`logging` itself) and defining handlers which are declared either in
they or their ancestors are explicitly named
in the logging configuration.
:param encoding: The encoding used to open file when *fname* is filename.
.. versionchanged:: 3.4
An instance of a subclass of :class:`~configparser.RawConfigParser` is
now accepted as a value for ``fname``. This facilitates:
@ -121,6 +123,9 @@ in :mod:`logging` itself) and defining handlers which are declared either in
application (e.g. based on command-line parameters or other aspects
of the runtime environment) before being passed to ``fileConfig``.
.. versionadded:: 3.10
The *encoding* parameter is added.
.. function:: listen(port=DEFAULT_LOGGING_CONFIG_PORT, verify=None)
Starts up a socket server on the specified port, and listens for new

View File

@ -48,7 +48,7 @@ RESET_ERROR = errno.ECONNRESET
# _listener holds the server object doing the listening
_listener = None
def fileConfig(fname, defaults=None, disable_existing_loggers=True):
def fileConfig(fname, defaults=None, disable_existing_loggers=True, encoding=None):
"""
Read the logging configuration from a ConfigParser-format file.
@ -66,7 +66,8 @@ def fileConfig(fname, defaults=None, disable_existing_loggers=True):
if hasattr(fname, 'readline'):
cp.read_file(fname)
else:
cp.read(fname)
encoding = io.text_encoding(encoding)
cp.read(fname, encoding=encoding)
formatters = _create_formatters(cp)

View File

@ -0,0 +1 @@
Add an ``encoding`` parameter :func:`logging.fileConfig()`.