mirror of
https://github.com/neoarz/Syntrel.git
synced 2025-12-25 03:40:11 +01:00
refactor(bot): bot utilities into separate modules
Moved logging, signal handling, and uptime calculation logic from bot.py into dedicated utils modules for better organization and reusability. Updated imports and usage in bot.py and utils/__init__.py accordingly.
This commit is contained in:
54
utils/logging.py
Normal file
54
utils/logging.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
|
||||
class LoggingFormatter(logging.Formatter):
|
||||
black = "\x1b[30m"
|
||||
red = "\x1b[31m"
|
||||
green = "\x1b[32m"
|
||||
yellow = "\x1b[33m"
|
||||
blue = "\x1b[34m"
|
||||
gray = "\x1b[38m"
|
||||
reset = "\x1b[0m"
|
||||
bold = "\x1b[1m"
|
||||
|
||||
COLORS = {
|
||||
logging.DEBUG: gray + bold,
|
||||
logging.INFO: blue + bold,
|
||||
logging.WARNING: yellow + bold,
|
||||
logging.ERROR: red,
|
||||
logging.CRITICAL: red + bold,
|
||||
}
|
||||
|
||||
def format(self, record):
|
||||
log_color = self.COLORS[record.levelno]
|
||||
format = "(black){asctime}(reset) (levelcolor){levelname:<8}(reset) (green){name}(reset) {message}"
|
||||
format = format.replace("(black)", self.black + self.bold)
|
||||
format = format.replace("(reset)", self.reset)
|
||||
format = format.replace("(levelcolor)", log_color)
|
||||
format = format.replace("(green)", self.green + self.bold)
|
||||
formatter = logging.Formatter(format, "%Y-%m-%d %H:%M:%S", style="{")
|
||||
return formatter.format(record)
|
||||
|
||||
|
||||
def setup_logger():
|
||||
logger = logging.getLogger("discord_bot")
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setFormatter(LoggingFormatter())
|
||||
|
||||
log_file_path = os.getenv("LOG_FILE", "logs/discord.log")
|
||||
log_dir = os.path.dirname(log_file_path)
|
||||
if log_dir:
|
||||
os.makedirs(log_dir, exist_ok=True)
|
||||
file_handler = logging.FileHandler(filename=log_file_path, encoding="utf-8", mode="w")
|
||||
file_handler_formatter = logging.Formatter(
|
||||
"[{asctime}] [{levelname:<8}] {name}: {message}", "%Y-%m-%d %H:%M:%S", style="{"
|
||||
)
|
||||
file_handler.setFormatter(file_handler_formatter)
|
||||
|
||||
logger.addHandler(console_handler)
|
||||
logger.addHandler(file_handler)
|
||||
|
||||
return logger
|
||||
Reference in New Issue
Block a user