New GitHub issue #111054 from Foundsheep:<br>

<hr>

<pre>
# Bug report

### Bug description:

### Sumary
- Using my custom fileHandler subclassing `TimeRotatingFileHandler`, it doesn't rotate a file according to my expectation.
- Expectation : With setting `when` to `midnight`, I expect logs for 2023-10-17 to be stored in `...log.2023-10-17` which will be rotated later
- What happened : However, as shown in the below screenshot, logs for 2023-10-19 are stored in `...log.2023-10-16` or something like that in the past. 

![image](https://github.com/python/cpython/assets/92705171/eb915f79-962a-49e7-a002-edd4dfa5353e)

### Code for this logger
```python
import logging
from logging import handlers
import datetime
import pathlib
import socket


class CustomTimedRotatingFileHandler(handlers.TimedRotatingFileHandler):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
 self.suffix = "%Y%m%d"

    def emit(self, record):
        if record.levelno in [logging.INFO, logging.WARNING]:
            record.msg = str(record.msg)[:255]
        # elif record.levelno in [logging.DEBUG, logging.ERROR, logging.CRITICAL]:
        #     record.msg = str(record.msg)[:65535]
        else:
            record.msg = str(record.msg)[:65535]

        super().emit(record)


def create_logger(name, is_from_client=False):

    def get_private_ip():
 socket_name = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 private_ip = None
        try:
 socket_name.connect(("8.8.8.8", 80))
            private_ip = socket_name.getsockname()[0]
        finally:
 socket_name.close()
        return private_ip

    today_str = datetime.datetime.today().strftime("%Y-%m-%d")
    base_dir = pathlib.Path("./logs", "android_server")

    if not base_dir.exists():
        base_dir.mkdir(parents=True, exist_ok=True)

 log = logging.getLogger(name)

    file_name = base_dir / "android_server.log"
    formatter = logging.Formatter(
 f"[%(asctime)s][%(levelname)s]{'' if is_from_client else '[' + str(get_private_ip()) + ']'}{'%(message)s]' if is_from_client else '[%(message)s]'}"
    )

    custom_trh = CustomTimedRotatingFileHandler(filename=file_name, when="midnight")
 custom_trh.setFormatter(formatter)
    log.addHandler(custom_trh)

 console_handler = logging.StreamHandler()
 console_handler.setFormatter(formatter)
 log.addHandler(console_handler)

    log.setLevel(logging.DEBUG)
 return log


def get_client_public_ip(request):
    ip_address = request.environ.get('HTTP_X_FORWARDED_FOR', request.remote_addr)
    return "[" + str(ip_address) + "]" + "["
```


### CPython versions tested on:

3.9

### Operating systems tested on:

Linux
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/111054">View on GitHub</a>
<p>Labels: type-bug</p>
<p>Assignee: </p>