Python 로그 모듈
                                            
 13861 단어  오토 메 이 션파 이 썬 학습 일기
                    
logging 모듈 은 Python 에 내 장 된 표준 모듈 로 실행 로 그 를 입력 하 는 데 사 용 됩 니 다.출력 로그 의 등급,로그 저장 경로 등 을 설정 할 수 있 습 니 다.
빠 른 사용
#   logging 
import logging
#       
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
#        
logger = logging.getLogger("  V1")
#          
# info
logger.info("    info   ")
#debug
logger.debug("    debug   ")
# warning
logger.warning("    warning   ")
기본 사용
로그 출력 콘 솔 이나 파일
import logging
# 1.  logger  
logger =logging.getLogger("log_file")
# 2.  log  
logger.setLevel(logging.INFO)
# 3.  handler,              
fh_stream = logging.StreamHandler()  #     handler
fh_file = logging.FileHandler("test.log", encoding="utf8")  #      handler
# 4.                 
fh_stream.setLevel(logging.WARNING)  #         
fh_file.setLevel(logging.DEBUG)  #          
# 5.  handler     
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh_stream.setFormatter(formatter)  #         
fh_file.setFormatter(formatter)  #          
# 6.  handler
logger.addHandler(fh_stream)
logger.addHandler(fh_file)
# 7.    
logger.info("  info   ")
logger.debug("  debug   ")
logger.warning("  warning   ")
logger.setLevel(logging.INFO)이 warning 으로 설정 되 어 있 기 때문에 info 등급 의 로 그 는 콘 솔fh_stream.setLevel(logging.WARNING)import logging
import datetime
import os
#          
log_l = {
    "info": logging.INFO,
    "debug": logging.DEBUG,
    "warning": logging.WARNING,
    "error": logging.ERROR
}
# 1.    
class Logger:
    # 2.     :          test.log, logger  ,        
    def __init__(self, log_file, log_name, log_level):
        self.logger = logging.getLogger(log_name)  #   logger  
        self.logger.setLevel(log_l[log_level])  #             
        # 3.      handler
        if not self.logger.handlers:  #        handler,       handler
            fh_stream = logging.StreamHandler()
            fh_stream.setLevel(log_l[log_level])
            formatter = logging.Formatter('%(asctime)s - %(name)s -%(lineno)s - %(levelname)s - %(message)s')
            fh_stream.setFormatter(formatter)
            self.logger.addHandler(fh_stream)
        # 4.         handler
            fh_file = logging.FileHandler(log_file)
            fh_file.setLevel(log_l[log_level])
            fh_file.setFormatter(formatter)
            self.logger.addHandler(fh_file)
#   logs  
log_path = os.path.dirname(__file__)  #       
log_path = log_path + os.path.sep + "logs"  #   logs  
current_data = datetime.datetime.now().strftime("%Y-%m-%d")  #        
log_file = os.path.join(log_path, current_data + ".log")  #        
# print(log_file)
#       
loglevel = "info"
#    log   ,         
def my_log(log_name=__file__):
    return Logger(log_file, log_name, loglevel).logger
if __name__ == '__main__':
    log = my_log("           ")
    log.info("    info  ")
부록
Format 형식 설명
Debug>Info>Warning>Error>Critical:로 그 를 인쇄 하 는 시간%(asctime)s:로 거 이름 인쇄%(name)s:로그 등급 이름 인쇄%(levelname)s:로그 정보 인쇄%(message)s:인쇄 로그 등급 의 수치%(levelno)s:현재 실행 프로그램의 경 로 를 인쇄 하 는 것 은 바로 sys.argv[0]%(pathname)s:현재 실행 중인 프로그램 이름 인쇄%(filename)s:로 그 를 인쇄 하 는 현재 함수%(funcName)s:로 그 를 인쇄 하 는 현재 줄 번호%(lineno)s:인쇄 스 레 드 ID%(thread)s:인쇄 스 레 드 이름%(threadName)s:프로 세 스 ID 인쇄이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
puppet 의 설치 배치 실례puppet 에 대한 설명 은 여기 서 상세 하 게 소개 하지 않 습 니 다. 여 기 는 주로 puppet 의 설치 방식 과 기본 모듈 의 응용 을 소개 합 니 다.다음은 바로 puppet 배치 설 치 를 시작 하 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.