From 9e6149dc97a784c55e0741b27df724d41ce8290c Mon Sep 17 00:00:00 2001 From: Choco <94597336+ChocoMeow@users.noreply.github.com> Date: Fri, 22 Mar 2024 09:58:56 +0800 Subject: [PATCH] Updated logging system --- main.py | 21 +++++++++------------ settings Example.json | 13 +++++++++---- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/main.py b/main.py index 5ae31df..0eee19e 100644 --- a/main.py +++ b/main.py @@ -152,19 +152,20 @@ async def get_prefix(bot, message: discord.Message): func.settings = Settings(func.open_json("settings.json")) LOG_SETTINGS = func.settings.logging - -if LOG_SETTINGS.get("enable", True): - log_path = LOG_SETTINGS.get("log_path", "./log") +if (LOG_FILE := LOG_SETTINGS.get("file", {})).get("enable", True): + log_path = os.path.abspath(LOG_FILE.get("path", "./logs")) if not os.path.exists(log_path): os.makedirs(log_path) file_handler = TimedRotatingFileHandler(filename=f'{log_path}/vocard.log', encoding="utf-8", backupCount=LOG_SETTINGS.get("max-history", 30), when="d") file_handler.namer = lambda name: name.replace(".log", "") + ".log" - file_handler.setFormatter(logging.Formatter('{asctime} [{levelname:<8}] {name}: {message}', '%Y-%m-%d %H:%M:%S', style='{')) + file_handler.setFormatter(logging.Formatter('{asctime} [{levelname:<8}] {name} {filename}:{lineno}: {message}', '%Y-%m-%d %H:%M:%S', style='{')) - discord_logger = logging.getLogger("discord") - discord_logger.addHandler(file_handler) - func.logger.addHandler(file_handler) + for log_name, log_level in LOG_SETTINGS.get("level", {}).items(): + _logger = logging.getLogger(log_name) + _logger.setLevel(log_level) + + logging.getLogger().addHandler(file_handler) # Setup the bot object intents = discord.Intents.default() @@ -189,8 +190,4 @@ bot = Vocard( if __name__ == "__main__": update.check_version(with_msg=True) - bot.run( - func.tokens.token, - log_level=getattr(logging, LOG_SETTINGS.get("level", "INFO").upper()), - root_logger=True - ) \ No newline at end of file + bot.run(func.tokens.token, root_logger=True) \ No newline at end of file diff --git a/settings Example.json b/settings Example.json index ed456d3..b0bff24 100644 --- a/settings Example.json +++ b/settings Example.json @@ -13,10 +13,15 @@ {"listen": "/help"} ], "logging": { - "level": "INFO", - "log_path": "./logs", - "max-history": 30, - "enable": true + "file": { + "path": "./logs", + "enable": true + }, + "level": { + "discord": "INFO", + "vocard": "INFO" + }, + "max-history": 30 }, "bot_access_user": [], "embed_color":"0xb3b3b3",