]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-84649: Make TimedRotatingFileHandler use CTIME instead of MTIME (GH-24660)
authorIvan Marton <github@martonivan.hu>
Thu, 4 Jun 2026 13:50:33 +0000 (15:50 +0200)
committerGitHub <noreply@github.com>
Thu, 4 Jun 2026 13:50:33 +0000 (13:50 +0000)
commitac3694b008e4f9d5d5ea6ff8584078f92f6906ab
treed923936b64a1e97e701445a1517ca34986c0cf77
parentfc9c4db1302f8be7527e70cf0938b629985a1d72
gh-84649: Make TimedRotatingFileHandler use CTIME instead of MTIME (GH-24660)

The TimedRotatingFileHandler previously only used st_mtime attribute of the
log file to detect whether it has to be rotate yet or not. In cases when the
file is changed within the rotatation period the st_mtime is also updated
to the current time and the rotation never happens.

It's more appropriate to check the file creation time (st_ctime) instead.
Whenever available, the more appropriate st_birthtime will be in use. (This
feature is available on FreeBSD, MacOS and Windows at the moment.) If
the st_mtime would be newer than st_ctime (e.g.: because the inode
related to the file has been changed without any file content
modification), then the earliest attribute will be used.
Lib/logging/handlers.py
Lib/test/support/__init__.py
Lib/test/test_logging.py
Misc/ACKS
Misc/NEWS.d/next/Library/2021-02-26-13-17-57.bpo-40469.yJHeQg.rst [new file with mode: 0644]