Initial commit

This commit is contained in:
ciomek committed 2026-01-25 10:23:02 +01:00
commit 55c3caa766
49 files changed
+1602

No files matched your search

View File
Whitespace-only changes.
+25
View File
@@ -0,0 +1,25 @@
import logging
class ColorFormatter(logging.Formatter):
COLORS = {
'DEBUG': '\033[37m',
'INFO': '\033[36m',
'WARNING': '\033[33m',
'ERROR': '\033[31m',
'CRITICAL': '\033[41m',
}
RESET = '\033[0m'
BOLD = '\033[1m'
def format(self, record):
color = self.COLORS.get(record.levelname, self.RESET)
message = super().format(record)
if record.levelname in ('WARNING', 'ERROR', 'CRITICAL'):
message = f"{self.BOLD}{color}{message}{self.RESET}"
else:
message = f"{color}{message}{self.RESET}"
return message
+42
View File
@@ -0,0 +1,42 @@
import logging
import threading
from pathlib import Path
from colony.core.logger.colors import ColorFormatter
LOG_DIR = Path("logs")
LOG_DIR.mkdir(exist_ok=True)
_loggers = {}
_logger_lock = threading.Lock()
FIXED_NAME_WIDTH = 15
def get_logger(name: str) -> logging.Logger:
with _logger_lock:
if name in _loggers:
return _loggers[name]
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
ch_formatter = ColorFormatter(
f'[%(asctime)s] %(levelname)-7s %(name)-{FIXED_NAME_WIDTH}s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
ch.setFormatter(ch_formatter)
logger.addHandler(ch)
fh = logging.FileHandler(LOG_DIR / f"{name}.log", encoding='utf-8')
fh.setLevel(logging.DEBUG)
fh_formatter = logging.Formatter(
f'[%(asctime)s] [%(threadName)s] %(levelname)-8s %(name)-{FIXED_NAME_WIDTH}s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
fh.setFormatter(fh_formatter)
logger.addHandler(fh)
logger.propagate = False
_loggers[name] = logger
return logger