내가 파이썬 2.7에서 로그를 설정하는 몇 가지 코드를 가지고 인수 'W'= 파일을 덮어 쓰지 않습니다로깅 (로깅 모듈을 사용하여)의 FileHandler
import os
import logging
logger=logging.getLogger('CopasiTools')
logger.setLevel(logging.DEBUG)
log_filename=os.path.join(os.path.dirname(copasi_file),os.path.split(copasi_file)[1][:-4]+'_log.log')
handler=logging.FileHandler(log_filename,mode='w')
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.debug('debugging message')
이를 코드가 작동하고 출력을 얻고 있지만이 로그를 사용하여 많은 디버깅을 수행하므로 실행될 때마다 로그 파일을 덮어 쓰려고합니다. docs에서 'FileHandler . It doesn't specify precisely *which* mode to use for overwrite file each time but I think a reasonable assumption would be
mode ='w'`에 대한 키워드 인수를 mode
이라고 말하십시오. 그러나 이것은 작동하지 않습니다. 아무도 왜 저에게 말할 수 있습니까?
동작을 재현 할 수 없습니다. 내가 제공 한 코드를 사용하고 파일 이름을 변경하기 만하면 코드를 실행할 때마다 로그를 덮어 씁니다. 'mode'를'a'로 변경하면 새로운 실행은 끝에 행을 추가합니다. – niemmi
이것은 이상하고 이전 [질문]과 관련 될 수 있습니다. (http://stackoverflow.com/questions/38396050/why-does-this -code-for-creation-a-python-log-not-work? noredirect = 1 # comment64203174_38396050) 나는 가지고 있었다. 로깅 모듈의 기본 동작을 영구적으로 무시할 수 있는지 알고 있습니까? – CiaranWelsh
나는 그것을 할 수있는 방법을 모르지만 그것은 불가능하다는 것을 의미하지는 않습니다. – niemmi