fix: автоматическое создание директории logs при запуске бота
This commit is contained in:
parent
29f2836cea
commit
9c7909bde5
@ -60,21 +60,23 @@ def test_file_handler_when_logs_dir_exists() -> None:
|
|||||||
os.chdir(orig_cwd)
|
os.chdir(orig_cwd)
|
||||||
|
|
||||||
|
|
||||||
def test_no_file_handler_when_logs_dir_missing() -> None:
|
def test_logs_dir_created_automatically() -> None:
|
||||||
"""FileHandler не добавляется если директории logs нет."""
|
"""Директория logs создаётся автоматически, если её нет."""
|
||||||
orig_cwd = os.getcwd()
|
orig_cwd = os.getcwd()
|
||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
os.chdir(tmpdir)
|
os.chdir(tmpdir)
|
||||||
# Убедиться что logs/ нет
|
# Убедиться что logs/ нет
|
||||||
logs_dir = Path("logs")
|
logs_dir = Path("logs")
|
||||||
if logs_dir.exists():
|
assert not logs_dir.exists()
|
||||||
import shutil
|
|
||||||
shutil.rmtree(logs_dir)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with _isolated_logger() as root:
|
with _isolated_logger() as root:
|
||||||
|
assert logs_dir.exists()
|
||||||
file_handlers = [h for h in root.handlers if isinstance(h, logging.FileHandler)]
|
file_handlers = [h for h in root.handlers if isinstance(h, logging.FileHandler)]
|
||||||
assert len(file_handlers) == 0
|
assert len(file_handlers) >= 1
|
||||||
|
# Закрыть file handler чтобы освободить файл на Windows
|
||||||
|
for h in file_handlers:
|
||||||
|
h.close()
|
||||||
finally:
|
finally:
|
||||||
os.chdir(orig_cwd)
|
os.chdir(orig_cwd)
|
||||||
|
|
||||||
|
|||||||
@ -34,15 +34,15 @@ def setup_logging() -> logging.Logger:
|
|||||||
root.setLevel(level)
|
root.setLevel(level)
|
||||||
root.addHandler(console)
|
root.addHandler(console)
|
||||||
|
|
||||||
# File handler — logs/bot.log (если директория logs доступна)
|
# File handler — logs/bot.log
|
||||||
log_dir = Path("logs")
|
log_dir = Path("logs")
|
||||||
if log_dir.exists():
|
log_dir.mkdir(parents=True, exist_ok=True)
|
||||||
file_handler = logging.FileHandler(
|
file_handler = logging.FileHandler(
|
||||||
log_dir / "bot.log", encoding="utf-8"
|
log_dir / "bot.log", encoding="utf-8"
|
||||||
)
|
)
|
||||||
file_handler.setLevel(level)
|
file_handler.setLevel(level)
|
||||||
file_handler.setFormatter(formatter)
|
file_handler.setFormatter(formatter)
|
||||||
root.addHandler(file_handler)
|
root.addHandler(file_handler)
|
||||||
|
|
||||||
# Подавить шум от aiohttp и discord.internal
|
# Подавить шум от aiohttp и discord.internal
|
||||||
logging.getLogger("aiohttp").setLevel(logging.WARNING)
|
logging.getLogger("aiohttp").setLevel(logging.WARNING)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user