2017-12-11 3 views
1

로깅을 출력하고 싶은 기능이 있습니다. 로그 파일은 함수가 무엇을했는지 (즉, 디버깅이나 사후 처리가 아닌) 레코드로서 프로그램 출력의 일부이므로 특정 위치에 저장하려고합니다. 그 위치는 설정 파일에서로드되지만 설정 파일을 읽는 데 성공했는지 실패했는지 기록하고 싶습니다!로깅 파일에 출력 지연

그래서 구성을 읽은 후에야 로그 파일을 만들 수 있지만 프로세스를 로그 할 수있게 될 때까지 구성을 읽지 않습니다.

나중까지 파일에 기록되는 로그 문을 연기 할 수있는 방법이 있습니까? 함수의 단순화 된 버전은 아래와 같습니다 : 나중에 logfile을 사용할 수 없으므로 분명히 실행되지 않습니다.

마치 basicConfig(..., delay=True) 인 것처럼 보일 수도 있지만 첫 번째 로깅 이벤트에 대한 지연 만 처리하는 것처럼 들립니다. 더 많은 로깅 이벤트에 대한 대답이 있습니까? 시작 임시 파일에 로그인 한

옵션 :

import logging 
import json 

def record(config): 

    logger = logging.getLogger(LOG) 
    logging.basicConfig(filename=logfile, level=logging.INFO) 
    logger.info('Start of continuous sampling') 

    # Load the config file 
    try: 
     config = json.load(open(config_file)) 
     logfile = config['logfile'] 
     logger.info('Config file found') 
    except IOError: 
     logger.critical('Config file not found') 
     sys.exit() 
+0

항상 입력 내용을 읽으십시오. 따라하기가 쉽지 않습니다. '지연'은 느린 로딩과 같고,'info','warn','error' 등등 처음으로 호출 할 때 작성합니다. – user1767754

답변