반응형
콘솔
기본 level이 warning이어서 info 로그는 표시가 안됩니다.
import logging
logging.info('info log console.')
logging.warning('warning log console.')
모든 로그 표시 설정
log level을 debug로 변경합니다.
logging.basicConfig(level=logging.DEBUG)
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug('debug log console.')
logging.info('info log console.')
logging.warning('warning log console.')
logging.error('error log console.')
logging.critical('critical log console.')
파일
basicConfig.filename 설정시 지정 파일에 로그 출력
import logging
logging.basicConfig(filename='./file_logging.log', level=logging.DEBUG)
logging.debug('debug log console.')
logging.info('info log console.')
logging.warning('warning log console.')
logging.error('error log console.')
logging.critical('critical log console.')
콘솔, 파일 동시 출력
1. logger instance 생성
2. stream, file 각각의 handler 생성
3. logger instance에 handler 연결
4. logger instance로 logging
import logging
logger = logging.getLogger(__name__)
handlerStream = logging.StreamHandler()
handlerFile = logging.FileHandler('./file_logging.log')
logger.addHandler(handlerStream)
logger.addHandler(handlerFile)
logger.debug('debug log console.')
logger.info('info log console.')
logger.warning('warning log console.')
logger.error('error log console.')
logger.critical('critical log console.')
로그 format
포멧 생성 후 헨들러에 포멧 연결
formatter = logging.Formatter('[%(asctime)s][%(levelname)s|%(filename)s:%(lineno)s] >> %(message)s')
handlerStream.setFormatter(formatter)
handlerFile.setFormatter(formatter)
로그 파일 분할
fileHandler에서 설정합니다.
maxBytes : 파일 사이즈
backupCount : 백업파일 수
import logging
from logging.handlers import QueueHandler
# file_logging.log파일에 최대 100MB를 10개까지 남김
fileMaxByte = 1024 * 1024 * 100
handlerFile = logging.handlers.RotatingFileHandler(
'./file_logging.log',
maxBytes=fileMaxByte,
backupCount=10)
References
반응형
댓글