mirror of
https://github.com/neoarz/Syntrel.git
synced 2025-12-25 11:40:12 +01:00
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
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
|