Python 기반의 logging 모듈 지식 총결산
앞말
logging 모듈은 Python에 내장된 표준 모듈로 스크립트 실행 로그를 출력하는 데 사용되며 출력 로그의 등급, 로그 저장 경로 등을 설정할 수 있습니다.
1. 로그 수준
레벨 정렬: CRITICAL > ERROR > WARNING > INFO > DEBUG
import logging # logging
#
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")
[root@zijie ~]# python log.py
WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical
기본적으로 생성된 root logger의 level은logging입니다.WARNING, 이 등급보다 낮으면 출력하지 않으며, WARNING 등급보다 낮은 내용을 보여주려면logging을 도입할 수 있습니다.basicConfig 로그 수준 로깅을 지정합니다.basicConfig(level=logging.DEBUG)2. basicConfig
형식
묘사
filename
StreamHandler 대신 지정된 파일 이름을 사용하여 FileHandler를 만들도록 지정합니다.
filemode
filename을 지정하면 이 모드로 파일 ('r','w','a') 을 엽니다.기본값은 a입니다.
format
프로세서에 지정된 형식 문자열을 사용합니다.
datefmt
사용 시간.strftime () 에서 지정한 날짜/시간 형식을 수락합니다.
style
형식을 지정하면 형식 문자열에 이 스타일을 사용합니다.'% 'printf 스타일,'{'는str.format (),'$'는string에 사용됩니다. 기본값은'%'입니다.
level
루트 레코더 레벨을 지정된 레벨로 설정합니다.기본적으로 생성된 root logger의 level은logging입니다.WARNING, 이 등급보다 낮은 것은 출력하지 않습니다.레벨 정렬: CRITICAL > ERROR > WARNING > INFO > DEBUG.(모든 레벨의 내용을 표시해야 하는 경우 level=logging.NOTSET)
stream
지정된 스트림을 사용하여 StreamHandler를 초기화합니다.이 인자는 filename과 호환되지 않습니다. 만약 둘 다 존재한다면 ValueError를 던집니다.
handlers
지정한 경우, 루트 로그 프로그램에 추가할 수 있도록 만들어진 프로세서의 교체입니다.포맷 프로그램 집합이 없는 모든 프로세서는 이 함수에서 만든 기본 포맷 프로그램에 분배됩니다.이 매개 변수는 filename이나stream과 호환되지 않습니다. 만약 둘 다 존재한다면 ValueError를 던집니다.
import logging
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(filename)s %(levelname)s %(message)s',
datefmt='%a %d %b %Y %H:%M:%S',
filename='xuehui.log',
filemode='w')
logging.info('This is a info.')
logging.debug('This is a debug message.')
logging.warning('This is a warning.')
3. 로그 파일 쓰기
import logging
import os.path
import time
# logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# handler,
logdate = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
log_path = 'logs/'
log_name = log_path + logdate + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG)
#
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
# logger handler
logger.addHandler(fh)
#
logger.debug('this is a logger debug message')
logger.info('this is a logger info message')
logger.warning('this is a logger warning message')
logger.error('this is a logger error message')
logger.critical('this is a logger critical message')
4. traceback 기록
import logging
import os.path
import time
# logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# handler,
logdate = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
log_path = 'logs/'
log_name = log_path + logdate + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG)
#
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
# logger handler
logger.addHandler(fh)
#
try:
open('/data/exist', 'rb')
except BaseException as e:
logger.error('Failed to open file', exc_info=True)
Python 기반의 logging 모듈 지식에 대한 이 글을 소개합니다. 더 많은 Python logging 모듈 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.