Improved logging and fixed missing locale strings

This commit is contained in:
2025-04-16 17:56:41 +02:00
parent 906770ef60
commit 13f92b2817
6 changed files with 54 additions and 14 deletions

View File

@ -1,12 +1,13 @@
import logging
from dataclasses import dataclass
from logging import Logger
from typing import Union
from bson import ObjectId
from modules.database_mongo import col_users
from modules.logging_utils import get_logger
logger = logging.getLogger(__name__)
logger: Logger = get_logger(__name__)
@dataclass

View File

@ -3,8 +3,9 @@ from dataclasses import dataclass
from typing import Union
from modules.database_sqlite import cursor
from modules.logging_utils import get_logger
logger = logging.getLogger(__name__)
logger: logging.Logger = get_logger(__name__)
@dataclass

View File

@ -10,6 +10,7 @@
},
"commands": {
"start": "Start using the bot",
"shutdown": "Turn off the bot",
"language": "Change bot's language",
"remove_commands": "Unregister all commands"
},

View File

@ -9,6 +9,7 @@
},
"commands": {
"start": "Почати користуватись ботом",
"shutdown": "Вимкнути бота",
"language": "Змінити мову бота",
"remove_commands": "Видалити всі команди"
},

21
main.py
View File

@ -1,15 +1,16 @@
import contextlib
import logging
import logging.config
from argparse import ArgumentParser
from os import getpid
from logging import Logger
from os import getpid, makedirs
from pathlib import Path
from sys import exit
from libbot.utils import config_get, json_read
from libbot.utils import json_read
from classes.pyroclient import PyroClient
# Main uses MongoDB implementation of DB
from modules.logging_utils import get_logging_config, get_logger
# Main uses MongoDB implementation of DB,
# but you can also select SQLite one below
# from modules.migrator_sqlite import migrate_database
from modules.migrator_mongo import migrate_database
@ -22,13 +23,11 @@ from modules.scheduler import scheduler
# from convopyro import Conversation
logging.basicConfig(
level=logging.DEBUG if config_get("debug") else logging.INFO,
format="%(name)s.%(funcName)s | %(levelname)s | %(message)s",
datefmt="[%X]",
)
makedirs(Path("logs/"), exist_ok=True)
logger = logging.getLogger(__name__)
logging.config.dictConfig(get_logging_config())
logger: Logger = get_logger(__name__)
parser = ArgumentParser(
prog="__name__",

37
modules/logging_utils.py Normal file
View File

@ -0,0 +1,37 @@
from pathlib import Path
from typing import Any, Dict
from libbot.utils import config_get
import logging
from logging import Logger
def get_logging_config() -> Dict[str, Any]:
return {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"file": {
"class": "logging.handlers.RotatingFileHandler",
"filename": str(Path("logs/latest.log")),
"maxBytes": 500000,
"backupCount": 10,
"formatter": "simple",
},
"console": {"class": "logging.StreamHandler", "formatter": "systemd"},
},
"formatters": {
"simple": {
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
},
"systemd": {"format": "%(name)s - %(levelname)s - %(message)s"},
},
"root": {
"level": "DEBUG" if config_get("debug") else "INFO",
"handlers": ["file", "console"],
},
}
def get_logger(name: str) -> Logger:
return logging.getLogger(name)