bpo-33400: Clarified documentation to indicate no strict adherence to ISO 8601. (GH-6702) (GH-6704)

(cherry picked from commit c4994dc00d)

Co-authored-by: Vinay Sajip <vinay_sajip@yahoo.co.uk>
This commit is contained in:
Miss Islington (bot) 2018-05-28 05:29:13 -07:00 committed by Vinay Sajip
parent 98b089e2a1
commit eb8516becc
4 changed files with 22 additions and 20 deletions

View File

@ -296,9 +296,9 @@ which should print something like this:
2010-12-12 11:41:42,612 is when this event was logged. 2010-12-12 11:41:42,612 is when this event was logged.
The default format for date/time display (shown above) is ISO8601. If you need The default format for date/time display (shown above) is like ISO8601 or
more control over the formatting of the date/time, provide a *datefmt* RFC 3339. If you need more control over the formatting of the date/time, provide
argument to ``basicConfig``, as in this example:: a *datefmt* argument to ``basicConfig``, as in this example::
import logging import logging
logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p') logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')

View File

@ -790,10 +790,10 @@ Sections which specify formatter configuration are typified by the following.
The ``format`` entry is the overall format string, and the ``datefmt`` entry is The ``format`` entry is the overall format string, and the ``datefmt`` entry is
the :func:`strftime`\ -compatible date/time format string. If empty, the the :func:`strftime`\ -compatible date/time format string. If empty, the
package substitutes ISO8601 format date/times, which is almost equivalent to package substitutes ISO8601-style format date/times, which is almost equivalent to
specifying the date format string ``'%Y-%m-%d %H:%M:%S'``. The ISO8601 format specifying the date format string ``'%Y-%m-%d %H:%M:%S'``. This format also
also specifies milliseconds, which are appended to the result of using the above specifies milliseconds, which are appended to the result of using the above
format string, with a comma separator. An example time in ISO8601 format is format string, with a comma separator. An example time in this format is
``2003-01-23 00:29:50,411``. ``2003-01-23 00:29:50,411``.
The ``class`` entry is optional. It indicates the name of the formatter's class The ``class`` entry is optional. It indicates the name of the formatter's class

View File

@ -515,8 +515,9 @@ The useful mapping keys in a :class:`LogRecord` are given in the section on
Returns a new instance of the :class:`Formatter` class. The instance is Returns a new instance of the :class:`Formatter` class. The instance is
initialized with a format string for the message as a whole, as well as a initialized with a format string for the message as a whole, as well as a
format string for the date/time portion of a message. If no *fmt* is format string for the date/time portion of a message. If no *fmt* is
specified, ``'%(message)s'`` is used. If no *datefmt* is specified, the specified, ``'%(message)s'`` is used. If no *datefmt* is specified, an
ISO8601 date format is used. ISO8601-like (or RFC3339-like) date format is used. See the
:meth:`formatTime` documentation for more details.
The *style* parameter can be one of '%', '{' or '$' and determines how The *style* parameter can be one of '%', '{' or '$' and determines how
the format string will be merged with its data: using one of %-formatting, the format string will be merged with its data: using one of %-formatting,
@ -556,8 +557,8 @@ The useful mapping keys in a :class:`LogRecord` are given in the section on
formatters to provide for any specific requirement, but the basic behavior formatters to provide for any specific requirement, but the basic behavior
is as follows: if *datefmt* (a string) is specified, it is used with is as follows: if *datefmt* (a string) is specified, it is used with
:func:`time.strftime` to format the creation time of the :func:`time.strftime` to format the creation time of the
record. Otherwise, the ISO8601 format is used. The resulting string is record. Otherwise, an ISO8601-like (or RDC 3339-like) format is used. The
returned. resulting string is returned.
This function uses a user-configurable function to convert the creation This function uses a user-configurable function to convert the creation
time to a tuple. By default, :func:`time.localtime` is used; to change time to a tuple. By default, :func:`time.localtime` is used; to change
@ -568,7 +569,7 @@ The useful mapping keys in a :class:`LogRecord` are given in the section on
attribute in the ``Formatter`` class. attribute in the ``Formatter`` class.
.. versionchanged:: 3.3 .. versionchanged:: 3.3
Previously, the default ISO 8601 format was hard-coded as in this Previously, the default ISO8601-like format was hard-coded as in this
example: ``2010-09-06 22:38:15,292`` where the part before the comma is example: ``2010-09-06 22:38:15,292`` where the part before the comma is
handled by a strptime format string (``'%Y-%m-%d %H:%M:%S'``), and the handled by a strptime format string (``'%Y-%m-%d %H:%M:%S'``), and the
part after the comma is a millisecond value. Because strptime does not part after the comma is a millisecond value. Because strptime does not

View File

@ -466,7 +466,8 @@ class Formatter(object):
Initialize the formatter either with the specified format string, or a Initialize the formatter either with the specified format string, or a
default as described above. Allow for specialized date formatting with default as described above. Allow for specialized date formatting with
the optional datefmt argument (if omitted, you get the ISO8601 format). the optional datefmt argument. If datefmt is omitted, you get an
ISO8601-like (or RFC 3339-like) format.
Use a style parameter of '%', '{' or '$' to specify that you want to Use a style parameter of '%', '{' or '$' to specify that you want to
use one of %-formatting, :meth:`str.format` (``{}``) formatting or use one of %-formatting, :meth:`str.format` (``{}``) formatting or
@ -494,13 +495,13 @@ class Formatter(object):
in formatters to provide for any specific requirement, but the in formatters to provide for any specific requirement, but the
basic behaviour is as follows: if datefmt (a string) is specified, basic behaviour is as follows: if datefmt (a string) is specified,
it is used with time.strftime() to format the creation time of the it is used with time.strftime() to format the creation time of the
record. Otherwise, the ISO8601 format is used. The resulting record. Otherwise, an ISO8601-like (or RFC 3339-like) format is used.
string is returned. This function uses a user-configurable function The resulting string is returned. This function uses a user-configurable
to convert the creation time to a tuple. By default, time.localtime() function to convert the creation time to a tuple. By default,
is used; to change this for a particular formatter instance, set the time.localtime() is used; to change this for a particular formatter
'converter' attribute to a function with the same signature as instance, set the 'converter' attribute to a function with the same
time.localtime() or time.gmtime(). To change it for all formatters, signature as time.localtime() or time.gmtime(). To change it for all
for example if you want all logging times to be shown in GMT, formatters, for example if you want all logging times to be shown in GMT,
set the 'converter' attribute in the Formatter class. set the 'converter' attribute in the Formatter class.
""" """
ct = self.converter(record.created) ct = self.converter(record.created)