로거 사전 파이썬 구성 파일을 기록

오기 OS
 오기 logging.config    #은 전용 로깅 도입되지 

BASE_DIR = os.path.dirname (os.path.dirname ( __FILE__ ))
 #의 DB_PATH의 R & LT = '% S \ DB \ db.txt'% BASE_DIR 
DB_PATH R & LT = ' % S \ DB ' %의 BASE_DIR의 

#은 로그 파일 경로 정의 
log_path에의 R을 & LT = ' access.log의 \ %의 S를 \ 로그 ' % BASE_DIR 
BOSS_LOG_PATH = R & LT ' % S \ 기록 \ boss.log ' %의 BASE_DIR의 

# 로그 출력 개시를위한 세 가지 형식 정의 
standard_format을 = '[%합니다 (asctime과) S [% (threadName) S : % (나사) D] [TASK_ID % (이름) S [% (파일명) S : % (LINENO) D] ' \
                   ' [% (levelname) S [% (메시지) S] '  # 이름 getlogger 이름 지정 

simple_format를 = ' [% (levelname) S [%합니다 (asctime과) S [% (파일명) S : % (LINENO) D] % ( 메시지) S ' 

id_simple_format = ' [% (levelname) S [%합니다 (asctime과) S] % (메시지) S ' 
#는 로그 출력단의 포맷 정의 

logfile_dir 함께 = os.path.dirname (os.path.abspath을 ( __FILE__ ))   # 디렉토리에 로그 파일 
= logfile_name ' all2.log '   #의 로그 파일 이름 

#을로그 디렉토리가 정의 만들 수없는 경우 
경우  하지 (logfile_dir) os.path.isdir : 
    os.mkdir (logfile_dir) 

# 로그 파일의 전체 경로 
logfile_path = os.path.join을 (logfile_dir, logfile_name) 

#의 로그 구성 사전 
LOGGING_DIC = {
     ' 버전 ' :. 1 ,
     ' disable_existing_loggers ' : 거짓,
     ' 포매터 ' {
         ' 표준 ' : {
             ' 형식 ' : standard_format 
        }, 
        ' 간단한 ' : {
            ' 형식 ' : simple_format 
        }, 
        ' id_simple ' : {
             ' 형식 ' : id_simple_format 
        } 
    }, 
    ' 필터 ' {}
     ' 핸들러 ' : {
         # 터미널의 로그에 인쇄 된 
        ' 스트림 ' {
             ' 레벨 ' : ' 디버그 ' ,
             ' 클래스 ' : ' logging.StreamHandler ' ,  #화면에 인쇄 된 
            ' 포맷터 ' : ' 간단한 ' 
        } 
        # 로그 파일에 인쇄, 수집하고 정보를 원하시면 위의 로그 
        ' 액세스 ' {
             ' 레벨 ' : ' 디버그 ' ,
             ' 클래스 ' : ' logging.handlers.RotatingFileHandler ' ,   # 파일로 저장 
            ' 포맷터 ' : ' 표준 ' ,
             ' 파일 이름 ' : logfile_path를,  #의 로그 파일
            ' MaxBytes는 ' : * 1024 * 5, 1024   #의 로그 크기 5M 
            ' BACKUPCOUNT ' 5 : ,
             ' 인코딩 ' : ' UTF-8 ' ,   #의 로그 파일의 인코딩이 더 이상 중국어에 대해 걱정할 필요가 없습니다 깨진 로그 
        }
         #의 파일로 인쇄 로그 수집 및 오류 위의 로그 
        ' 보스 ' : {
                     ' 레벨 ' : ' 오류 ' ,
                     ' 클래스 ' : ' logging.handlers.RotatingFileHandler ' ,  #파일로 저장 
                    ' 포맷터 ' : ' id_simple ' ,
                     ' 파일 이름 ' : BOSS_LOG_PATH,   #의 로그 파일 
                    # 'MaxBytes를': 1024 * 1024 * 5, # 로그 크기 5M 
                    ' MaxBytes ' : 300,   #의 로그 크기 5M 
                    ' BACKUPCOUNT ' : 5 ,
                     ' 인코딩 ' : ' UTF-8 ' ,   #의 로그 파일의 인코딩은 더 이상 왜곡 로그인 중국어에 대해 걱정할 필요가 없다 
                } 
    }, 
    ' 로거 ' :
        {# Logging.getLogger (__ name__) 로거 구성을 얻을 
        ' {
             ' 핸들러 ' : ' 스트리밍 ' , ' 접속 ' , ' BOSS ' ,   # 처리기 플러스 개의 상기 정의, 즉 로그 데이터 두 파일을 작성하고 화면에 인쇄 
            ' 수준 ' : ' 디버그 ' ,
             ' 전파 ' : 사실,   # 까지 (더 높은 수준의 로거) 통과 
        }
         # 우리는 다른 로거 객체 logging.getLogger (__ name__)를 취할 것 인쇄 서로 다른 식별 정보 로그인 할 때되도록 다른 __name__, 파일 
        #을그러나 우리가 거기에 도착했을 때 찾을 수없는 키 이름을 찾을 수 로거 이름을했다, 그래서 기본 키 = ''구성 
    } 
} 


DEF의 load_my_logging_cfg () : 
    logging.config.dictConfig (LOGGING_DIC)   #의 로깅 구성 위의 수입 정의 
    = logging.getLogger 로거 ( __name__ )   #은 로그의 예를 생성 
    logger.info ( ' 그것은 작품을! ' )   #의 파일의 기록 작동 상태 

IF  __name__ == ' __main__ ' : 
    load_my_logging_cfg ()
코드보기

 

추천

출처www.cnblogs.com/mylu/p/11116437.html