Improved logging and fixed missing locale strings
This commit is contained in:
@@ -1,12 +1,13 @@
|
|||||||
import logging
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from logging import Logger
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from bson import ObjectId
|
from bson import ObjectId
|
||||||
|
|
||||||
from modules.database_mongo import col_users
|
from modules.database_mongo import col_users
|
||||||
|
from modules.logging_utils import get_logger
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger: Logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
@@ -3,8 +3,9 @@ from dataclasses import dataclass
|
|||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from modules.database_sqlite import cursor
|
from modules.database_sqlite import cursor
|
||||||
|
from modules.logging_utils import get_logger
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger: logging.Logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
},
|
},
|
||||||
"commands": {
|
"commands": {
|
||||||
"start": "Start using the bot",
|
"start": "Start using the bot",
|
||||||
|
"shutdown": "Turn off the bot",
|
||||||
"language": "Change bot's language",
|
"language": "Change bot's language",
|
||||||
"remove_commands": "Unregister all commands"
|
"remove_commands": "Unregister all commands"
|
||||||
},
|
},
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
},
|
},
|
||||||
"commands": {
|
"commands": {
|
||||||
"start": "Почати користуватись ботом",
|
"start": "Почати користуватись ботом",
|
||||||
|
"shutdown": "Вимкнути бота",
|
||||||
"language": "Змінити мову бота",
|
"language": "Змінити мову бота",
|
||||||
"remove_commands": "Видалити всі команди"
|
"remove_commands": "Видалити всі команди"
|
||||||
},
|
},
|
||||||
|
21
main.py
21
main.py
@@ -1,15 +1,16 @@
|
|||||||
import contextlib
|
import contextlib
|
||||||
import logging
|
import logging.config
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
from os import getpid
|
from logging import Logger
|
||||||
|
from os import getpid, makedirs
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from sys import exit
|
from sys import exit
|
||||||
|
|
||||||
from libbot.utils import config_get, json_read
|
from libbot.utils import json_read
|
||||||
|
|
||||||
from classes.pyroclient import PyroClient
|
from classes.pyroclient import PyroClient
|
||||||
|
from modules.logging_utils import get_logging_config, get_logger
|
||||||
# Main uses MongoDB implementation of DB
|
# Main uses MongoDB implementation of DB,
|
||||||
# but you can also select SQLite one below
|
# but you can also select SQLite one below
|
||||||
# from modules.migrator_sqlite import migrate_database
|
# from modules.migrator_sqlite import migrate_database
|
||||||
from modules.migrator_mongo import migrate_database
|
from modules.migrator_mongo import migrate_database
|
||||||
@@ -22,13 +23,11 @@ from modules.scheduler import scheduler
|
|||||||
# from convopyro import Conversation
|
# from convopyro import Conversation
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig(
|
makedirs(Path("logs/"), exist_ok=True)
|
||||||
level=logging.DEBUG if config_get("debug") else logging.INFO,
|
|
||||||
format="%(name)s.%(funcName)s | %(levelname)s | %(message)s",
|
|
||||||
datefmt="[%X]",
|
|
||||||
)
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logging.config.dictConfig(get_logging_config())
|
||||||
|
|
||||||
|
logger: Logger = get_logger(__name__)
|
||||||
|
|
||||||
parser = ArgumentParser(
|
parser = ArgumentParser(
|
||||||
prog="__name__",
|
prog="__name__",
|
||||||
|
37
modules/logging_utils.py
Normal file
37
modules/logging_utils.py
Normal 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)
|
Reference in New Issue
Block a user