Python logging 모듈 패키지 실현 원리 분석
일부 소프트웨어 가 실 행 될 때 발생 하 는 사건 을 추적 하 는 방법 은 코드 에서 로그 의 일부 방법 을 호출 하여 발생 하 는 일 을 기록 할 수 있 습 니 다.
하나의 사건 은 선택 가능 한 변수 데 이 터 를 포함 할 수 있 는 메시지 로 설명 할 수 있 습 니 다.
사건 은 자신의 중요성 등급 이 있다.
2.logging 로그 시스템 4 대 구성 요소 사용
import os, time, logging, sys
from Common.plugs.get_config import r_config
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
if sys.platform == "win32":
ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini').replace('/', '\\')
else:
ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini')
log_path = r_config(ENV_CONF_DIR, "log", "log_path")
class Log:
def __init__(self, log_path):
self.logName = os.path.join(log_path, '{0}.log'.format(time.strftime('%Y-%m-%d')))
def console_log(self, level, message):
# logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# handler, debug
debug_file = logging.FileHandler(self.logName, 'a+', encoding='utf-8')
debug_file.setLevel(logging.DEBUG)
# handler,
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# handler
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
debug_file.setFormatter(formatter)
ch.setFormatter(formatter)
# logger handler
logger.addHandler(debug_file)
logger.addHandler(ch)
#
if level == 'info':
logger.info(message)
elif level == 'debug':
logger.debug(message)
elif level == 'warning':
logger.warning(message)
elif level == 'error':
logger.error(message)
elif level == 'critical':
logger.critical(message)
logger.removeHandler(ch)
logger.removeHandler(debug_file)
debug_file.close()
def debug(self, message): # ,
self.console_log('debug', message)
def info(self, message): # DEBUG, ,
self.console_log('info', message)
def warning(self, message): # , ,
self.console_log('warning', message)
def error(self, message): # WARNING ,
self.console_log('error', message)
def critical(self, message): ,
self.console_log('critical', message)
if __name__ == '__main__':
Log(log_path).info("adasd")
Log(log_path).error("dsadasddasd")
'''
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.