From 3a0a8da648d886fc055bfa8b7eabfce792d9ff2c Mon Sep 17 00:00:00 2001
From: jan iversen <jancasacondor@gmail.com>
Date: Wed, 25 Aug 2021 17:32:48 +0200
Subject: [PATCH] Change logging to do rollover() instead of rotate() (#55177)

* Change to rollover from rotate.

* Remove test log files.
---
 .gitignore                 | 2 +-
 homeassistant/bootstrap.py | 4 ++--
 tests/test_bootstrap.py    | 5 +++++
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/.gitignore b/.gitignore
index 20c1991c45d..bdc4c24c5b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,7 @@ config/*
 config2/*
 
 tests/testing_config/deps
-tests/testing_config/home-assistant.log
+tests/testing_config/home-assistant.log*
 
 # hass-release
 data/
diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py
index 2e3b5522c3f..f1136123999 100644
--- a/homeassistant/bootstrap.py
+++ b/homeassistant/bootstrap.py
@@ -332,7 +332,7 @@ def async_enable_logging(
         not err_path_exists and os.access(err_dir, os.W_OK)
     ):
 
-        err_handler: logging.FileHandler
+        err_handler: logging.handlers.RotatingFileHandler | logging.handlers.TimedRotatingFileHandler
         if log_rotate_days:
             err_handler = logging.handlers.TimedRotatingFileHandler(
                 err_log_path, when="midnight", backupCount=log_rotate_days
@@ -342,7 +342,7 @@ def async_enable_logging(
                 err_log_path, backupCount=1
             )
 
-        err_handler.rotate(err_log_path, f"{err_log_path[:-4]}.previous.log")
+        err_handler.doRollover()
         err_handler.setLevel(logging.INFO if verbose else logging.WARNING)
         err_handler.setFormatter(logging.Formatter(fmt, datefmt=datefmt))
 
diff --git a/tests/test_bootstrap.py b/tests/test_bootstrap.py
index 2bdbab11c32..929cbbf6e81 100644
--- a/tests/test_bootstrap.py
+++ b/tests/test_bootstrap.py
@@ -1,6 +1,7 @@
 """Test the bootstrapping."""
 # pylint: disable=protected-access
 import asyncio
+import glob
 import os
 from unittest.mock import Mock, patch
 
@@ -69,6 +70,10 @@ async def test_async_enable_logging(hass):
             log_file="test.log",
         )
         mock_async_activate_log_queue_handler.assert_called_once()
+        for f in glob.glob("test.log*"):
+            os.remove(f)
+        for f in glob.glob("testing_config/home-assistant.log*"):
+            os.remove(f)
 
 
 async def test_load_hassio(hass):
-- 
GitLab