2021-09-13 17:44:05,283 - test - INFO - INFO 레벨 로깅 문구 출력 테스트
2021-09-13 17:44:05,483 - test - ERROR - ERROR 레벨 로깅 문구 출력 테스트
class Logger:
    """
    커스텀 로거 클래스
    """
    def __init__(self, filePath=None):
        
        # 로거 이름
        self.className = "Logger"
        
        # 로그 파일 생성 경로
        if filePath is None:
            self.filePath = "./log/"
        # 로그 파일 생성 경로 부재 시 생성
        if not os.path.exists(self.filePath):
            os.makedirs(self.filePath)
        
    def initLogger(self):
        """
        로거 인스턴스 반환
        """
        # 로거 인스턴스 생성
        __logger = logging.getLogger("Logger")
        #=====================================================
        # 포매터 설정
        #=====================================================
        # 스트림 핸들러 포매터 설정
        streamFormatter = colorlog.ColoredFormatter(
            "%(log_color)s[%(levelname)-8s]%(reset)s <%(name)s>: %(module)s:%(lineno)d:  %(bg_blue)s%(message)s"
        )
        # 파일 핸들러 포매터 설정
        fileFormatter = logging.Formatter(
            "%(asctime)s [%(levelname)-8s] <%(name)s>: %(module)s:%(lineno)d: %(message)s"
        )
        #=====================================================
        # 핸들러 설정
        #=====================================================
        # 스트림 핸들러 정의
        streamHandler = colorlog.StreamHandler(sys.stdout)
        
        # 파일 핸들러 정의
        fileHandler = handlers.TimedRotatingFileHandler(
            os.path.abspath(f"{self.filePath}logData.log"),
            when="midnight",
            interval=1,
            backupCount=14,
            encoding="utf-8",
        )
        #=====================================================
        # 핸들러에 포매터 지정
        #=====================================================
        streamHandler.setFormatter(streamFormatter)
        fileHandler.setFormatter(fileFormatter)
        # 로거 인스턴스에 핸들러 삽입
        __logger.addHandler(streamHandler)
        __logger.addHandler(fileHandler)
        # 로그 레벨 정의
        __logger.setLevel(logging.DEBUG)
        return __logger
[37m[DEBUG   ][0m <Logger>: <ipython-input-9-8b929ff392bd>:1:  [44mText[0m
[32m[INFO    ][0m <Logger>: <ipython-input-10-00e367f818bf>:1:  [44mText[0m
[33m[WARNING ][0m <Logger>: <ipython-input-11-b21b75470bde>:1:  [44mText[0m
[31m[ERROR   ][0m <Logger>: <ipython-input-12-35d8986e5471>:1:  [44mText[0m
[01;31m[CRITICAL][0m <Logger>: <ipython-input-13-4c135fee5a22>:1:  [44mText[0m
댓글남기기