summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInada Naoki <songofacandy@gmail.com>2021-04-13 09:17:03 (GMT)
committerGitHub <noreply@github.com>2021-04-13 09:17:03 (GMT)
commitc2b7a66b91cdb96fbfdb160f96797208ddc5e436 (patch)
treefd8a4bcca046f1ed4fc803c8534d246522a6fb2b
parenta4833883c9b81b6b272cc7c5b67fa1658b65304c (diff)
downloadcpython-c2b7a66b91cdb96fbfdb160f96797208ddc5e436.zip
cpython-c2b7a66b91cdb96fbfdb160f96797208ddc5e436.tar.gz
cpython-c2b7a66b91cdb96fbfdb160f96797208ddc5e436.tar.bz2
bpo-43731: Add an `encoding` parameter to logging.fileConfig() (GH-25273)
-rw-r--r--Doc/library/logging.config.rst7
-rw-r--r--Lib/logging/config.py5
-rw-r--r--Misc/NEWS.d/next/Library/2021-04-08-15-19-20.bpo-43731.nnVd3h.rst1
3 files changed, 10 insertions, 3 deletions
diff --git a/Doc/library/logging.config.rst b/Doc/library/logging.config.rst
index cab49f6..f833bcd 100644
--- a/Doc/library/logging.config.rst
+++ b/Doc/library/logging.config.rst
@@ -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
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index fd3aded..3bc63b7 100644
--- a/Lib/logging/config.py
+++ b/Lib/logging/config.py
@@ -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)
diff --git a/Misc/NEWS.d/next/Library/2021-04-08-15-19-20.bpo-43731.nnVd3h.rst b/Misc/NEWS.d/next/Library/2021-04-08-15-19-20.bpo-43731.nnVd3h.rst
new file mode 100644
index 0000000..e5309c9
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-04-08-15-19-20.bpo-43731.nnVd3h.rst
@@ -0,0 +1 @@
+Add an ``encoding`` parameter :func:`logging.fileConfig()`.