Python 공부 노트 6. - Logging
http://docs.python.org/2/howto/logging-cookbook.html
# Add the log message handler to the logger
handler = logging.handlers.RotatingFileHandler(
LOG_FILENAME, maxBytes=20, backupCount=5)
my_logger.addHandler(handler)
my_logger.debug('log message here....')
Logger
: 일종의 identifier로, 애플리케이션 마다 logger를 정하 수 있음
handler
: 파일 핸들러, 소켓 핸들러, Rotating 파일 핸들러등,스트림 핸들러(Console 등)
※ DB Handler는 없는 듯 하고, 소켓 핸들러를 이용하면, 분산 시스템에서 중앙 집중화된 Logger를 만들 수 있음
(단, 로그 서버가 별도로 있는게 아니기 때문에, 분산 환경용 로거는 만들기 나름)
formater
: 핸들러 마다 붙일 수 있음
logging 메서드
: debug,info,warn,error,critical
: setLevel로 로그 출려 레벨 정함
단순 예제
import logging
logger = logging.getLogger("logging_sample")
logger.setLevel(logging.DEBUG)
# file log handler
fh = logging.FileHandler("/temp/python.log")
fh.setLevel(logging.ERROR)
# console log handler
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
#create formmater
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)
logger.addHandler(ch)
logger.addHandler(fh)
logger.debug("this is debugging")
logger.info("this is info")