38 lines
997 B
Python
38 lines
997 B
Python
import logging
|
|
import sys
|
|
|
|
# ANSI farger
|
|
COLORS = {
|
|
"INFO": "\033[94m", # blå
|
|
"DEBUG": "\033[92m", # grønn
|
|
"WARNING": "\033[93m", # gul
|
|
"ERROR": "\033[91m", # rød
|
|
"RESET": "\033[0m"
|
|
}
|
|
|
|
class ColoredFormatter(logging.Formatter):
|
|
def format(self, record):
|
|
levelname = record.levelname
|
|
color = COLORS.get(levelname, COLORS["RESET"])
|
|
prefix = f"[{levelname}]"
|
|
message = super().format(record)
|
|
return f"{color}{prefix}{COLORS['RESET']} {message}"
|
|
|
|
def setup_logger():
|
|
import os
|
|
level_name = os.getenv("LOG_LEVEL", "INFO").upper()
|
|
level = getattr(logging, level_name, logging.INFO)
|
|
|
|
handler = logging.StreamHandler(sys.stdout)
|
|
formatter = ColoredFormatter("%(asctime)s - %(name)s - %(message)s")
|
|
handler.setFormatter(formatter)
|
|
|
|
logger = logging.getLogger()
|
|
logger.setLevel(level)
|
|
logger.handlers = [handler]
|
|
return logger
|
|
|
|
|
|
# Opprett global logger
|
|
logger: logging.Logger = setup_logger()
|