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
댓글남기기