37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
![]() |
import logging
|
||
|
from colorama import Fore, Style, init
|
||
|
|
||
|
# Initialize colorama for cross-platform color support
|
||
|
init(autoreset=True)
|
||
|
|
||
|
class ColorFormatter(logging.Formatter):
|
||
|
COLORS = {
|
||
|
logging.DEBUG: Fore.CYAN,
|
||
|
logging.INFO: Fore.GREEN,
|
||
|
logging.WARNING: Fore.YELLOW,
|
||
|
logging.ERROR: Fore.RED,
|
||
|
logging.CRITICAL: Fore.MAGENTA + Style.BRIGHT,
|
||
|
}
|
||
|
|
||
|
def format(self, record):
|
||
|
color = self.COLORS.get(record.levelno, "")
|
||
|
reset = Style.RESET_ALL
|
||
|
base_message = super().format(record)
|
||
|
return f"{color}{base_message}{reset}"
|
||
|
|
||
|
# Create your custom logger
|
||
|
logger = logging.getLogger("Selfbot")
|
||
|
logger.setLevel(logging.DEBUG)
|
||
|
logger.propagate = False # Don't leak into root logger
|
||
|
|
||
|
# Add a stream handler if not already present
|
||
|
if not logger.handlers:
|
||
|
handler = logging.StreamHandler()
|
||
|
handler.setLevel(logging.DEBUG)
|
||
|
formatter = ColorFormatter(
|
||
|
fmt="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
||
|
datefmt="%H:%M:%S"
|
||
|
)
|
||
|
handler.setFormatter(formatter)
|
||
|
logger.addHandler(handler)
|