Created
February 13, 2024 10:11
-
-
Save deepanshumehtaa/5d2f452e7986c1edbe900a295258c6bc to your computer and use it in GitHub Desktop.
Python Logger
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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