mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
[3.11] gh-89047: Fix msecs computation so you never end up with 1000 msecs. (GH-96340) (GH-96341)
This commit is contained in:
parent
698df306a9
commit
103f26f282
2 changed files with 9 additions and 1 deletions
|
@ -334,7 +334,7 @@ class LogRecord(object):
|
|||
self.lineno = lineno
|
||||
self.funcName = func
|
||||
self.created = ct
|
||||
self.msecs = (ct - int(ct)) * 1000
|
||||
self.msecs = int((ct - int(ct)) * 1000) + 0.0 # see gh-89047
|
||||
self.relativeCreated = (self.created - _startTime) * 1000
|
||||
if logThreads:
|
||||
self.thread = threading.get_ident()
|
||||
|
|
|
@ -4088,6 +4088,14 @@ class FormatterTest(unittest.TestCase, AssertErrorMessage):
|
|||
f.converter = time.gmtime
|
||||
self.assertEqual(f.formatTime(r), '21/04/1993 08:03:00')
|
||||
|
||||
def test_issue_89047(self):
|
||||
f = logging.Formatter(fmt='{asctime}.{msecs:03.0f} {message}', style='{', datefmt="%Y-%m-%d %H:%M:%S")
|
||||
for i in range(2500):
|
||||
time.sleep(0.0004)
|
||||
r = logging.makeLogRecord({'msg': 'Message %d' % (i + 1)})
|
||||
s = f.format(r)
|
||||
self.assertNotIn('.1000', s)
|
||||
|
||||
|
||||
class TestBufferingFormatter(logging.BufferingFormatter):
|
||||
def formatHeader(self, records):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue