개발 꿀팁/PYTHON

Python에서 logging 기본 용법

Jammie 2022. 11. 28. 12:55
반응형

logging의 초급 용법:

# # -*- coding:utf-8 -*-
import logging

# 기본 로그 출력 수준은 warning입니다
# baseConfig( )를 사용하여 로그 출력 수준 지정
print("this is print log")
import logging

# 출력 형식 및 공용 정보 추가
logging.basicConfig(format="%(asctime)s|%(levelname)s|%(filename)s:%(lineno)s|%(message)s",
datefmt="%Y-%m-%d %H:%M:%S", level=logging.DEBUG)
logging.basicConfig(filename='demo.log', filemode='w', level=logging.DEBUG)
logging.debug("This is debug log1")
logging.info("This is info log")
logging.warning("This is warning log")
logging.error("This is error log")
logging.critical("This is critical log")

logging의 고급 사용법:

# # -*- coding:utf-8 -*-
import logging

# 고급 용법
# 기록기
logger = logging.getLogger('name') # logger 가져오기, name 스스로 설정
logger.setLevel(logging.DEBUG) #레벨 설정

# 프로세서 핸들러, 즉 콘솔 핸들러
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logging.DEBUG)

# handler에 로그 수준을 지정하지 않았습니다. logger의 수준을 사용할 것입니다.
# 파일 handler, 로그 내용은 filename.log 파일에 저장되며 루트/filename.log와 같은 경로도 지정할 수 있습니다.
fileHandler = logging.FileHandler(filename='filename.log')
fileHandler.setLevel(logging.INFO)

# formatter 형식
formatter = logging.Formatter("%(asctime)s|%(levelname)-8s|%(filename)10s:%(lineno)4s|%(message)s") # - 오른쪽 정렬, 없음 - 왼쪽 정렬, %(keys)s 고정 형식

# 프로세서 포맷
consoleHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)

# 레코더는 프로세서를 설정해야 합니다.
logger.addHandler(consoleHandler)
logger.addHandler(fileHandler)

# 필터 정의
flt = logging.Filter("cn.cccb")

# 연관 필터
# # logger.addFilter(flt)
fileHandler.addFilter(flt)

# 로그 출력 코드
logger.debug("This is debug log1")
logger.info("This is info log")
logger.warning("This is warning log")
logger.error("This is error log")
logger.critical("This is critical log")

 

반응형

'개발 꿀팁 > PYTHON' 카테고리의 다른 글

Pytorch이상 처리  (1) 2022.11.28
Python 파일 이름에서 숫자 읽기  (0) 2022.11.28
Python 폴더 이동  (0) 2022.11.28
Python_ 객체 지향  (0) 2022.11.25
파이썬 섭씨도와 화씨도의 변환  (0) 2022.11.25