Skip to content

Instantly share code, notes, and snippets.

@shotadft
Last active July 7, 2025 15:29
Show Gist options
  • Select an option

  • Save shotadft/4365d4f9f40b9ce3ef6d5d4b45a0c7a5 to your computer and use it in GitHub Desktop.

Select an option

Save shotadft/4365d4f9f40b9ce3ef6d5d4b45a0c7a5 to your computer and use it in GitHub Desktop.
超汎用的なロガークラス
from enum import Enum
class Color(Enum):
RESET = "\033[0m"
RED = "\033[31m"
YELLOW = "\033[33m"
GREEN = "\033[32m"
BLUE = "\033[34m"
class Sign(Enum):
INFO = ("[INFO]", Color.BLUE)
WARNING = ("[WARN]", Color.YELLOW)
ERROR = ("[ERROR]", Color.RED)
SUCCESS = ("[OK]", Color.GREEN)
class Logger:
def __init__(self, prefix: str = ""):
self.prefix = prefix
def _log(self, sign: Sign, *values: object, rae: bool = False):
label, color = sign.value
if rae:
print(f"{self.prefix}{color.value}{label}", *values, Color.RESET.value)
else:
print(f"{self.prefix}{color.value}{label}{Color.RESET.value}", *values)
def info(self, *values: object):
self._log(Sign.INFO, *values)
def warning(self, *values: object):
self._log(Sign.WARNING, *values, rae=True)
def error(self, *values: object):
self._log(Sign.ERROR, *values, rae=True)
def success(self, *values: object):
self._log(Sign.SUCCESS, *values)
from enum import Enum
from typing import Any
class Color(Enum):
RESET: str
RED: str
YELLOW: str
GREEN: str
BLUE: str
class Sign(Enum):
INFO: tuple[str, Color]
WARNING: tuple[str, Color]
ERROR: tuple[str, Color]
SUCCESS: tuple[str, Color]
class Logger:
prefix: str
def __init__(self, prefix: str = "") -> None: ...
def _log(self, sign: Sign, *values: object, reset_at_end: bool = False) -> None: ...
def info(self, *values: object, reset_at_end: bool = False) -> None: ...
def warning(self, *values: object, reset_at_end: bool = False) -> None: ...
def error(self, *values: object, reset_at_end: bool = False) -> None: ...
def success(self, *values: object, reset_at_end: bool = False) -> None: ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment