Skip to content

Instantly share code, notes, and snippets.

@deepanshumehtaa
Created February 13, 2024 10:11
Show Gist options
  • Save deepanshumehtaa/5d2f452e7986c1edbe900a295258c6bc to your computer and use it in GitHub Desktop.
Save deepanshumehtaa/5d2f452e7986c1edbe900a295258c6bc to your computer and use it in GitHub Desktop.
Python Logger
import logging
class ColoredFormatter(logging.Formatter):
RESET_CODE = '\033[0m' # Reset color
COLOR_CODES = {
'DEBUG': '\033[94m', # Blue
'INFO': '\033[92m', # Green
'WARNING': '\033[93m', # Yellow
'ERROR': '\033[91m', # Red
'CRITICAL': '\033[95m' # Magenta
}
def format(self, record):
log_level = record.levelname
record.msg = f"{self.COLOR_CODES.get(log_level, self.RESET_CODE)}{record.msg}{self.RESET_CODE}"
return super().format(record)
class AppLogger:
def __init__(self) -> None:
self.formatter = ColoredFormatter(
fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%d-%m %H:%M:%S'
)
# Create logger and set level
self.logger = logging.getLogger(__name__)
self.logger.setLevel(logging.DEBUG)
# Create console handler and set level
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_handler.setFormatter(self.formatter)
# Add console handler to logger
self.logger.addHandler(console_handler)
def debug_logger(self, msg):
self.logger.debug(msg)
def info_logger(self, msg):
self.logger.info(msg)
ll = AppLogger()
ll.debug_logger("okok 11")
ll.info_logger("okok 11")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment