홈>
현재 특정 함수 "export_log"를 호출하면 처음부터 앱과의 사용자 상호 작용에 관한 모든 이전 로그 기록이 출력되는 응용 프로그램을 설계하고 있습니다. 처음에는 모든 로그를 목록에 저장 한 다음 파일로 출력했지만 더 나은 방법을 찾고있었습니다. 필자는 필자의 요구에 완벽하게 보이는 Python 로깅 모듈을 발견했지만 제대로 작동하도록하는 것은 약간 익숙하지 않습니다.
아래는 나의 최소 작업 예입니다. func1은 기본적으로 func2에 의해 호출 될 때마다 "foo"를 출력하는 로거입니다. 현재 스크립트를 처음 실행할 때 빈 파일이 생성됩니다. 그러나 스크립트를 두 번 실행하면 파일이 추가되지만 예상되지는 않습니다. func1에서 생성 된 모든 이전 출력 기록을 저장하고 싶습니다.
export_log 함수가 요청시 호출 될 때만 로그 파일을 출력하도록하려면 어떻게해야합니까?
import logging
global logger
logger = logging.getLogger('log_file')
logger.setLevel(logging.INFO)
#
def export_log():
global logger
fh = logging.FileHandler('logFile.log')
fh.setLevel(logging.INFO)
logger.addHandler(fh)
# run 3 times
def func1():
global logger
logger.info("foo")
def func2():
for i in range(3):
func1()
func2()
export_log()
# Desired output upon calling the export_log() function:
# foo
# foo
# foo
# Actual output:
# File is initially blank after running script once.
# always appends "foo" every time the script is run again
수정:
와이즈 비즈
Tkinter 버튼으로 호출되기 때문에이 함수가 필요합니다 :
export_log
. 기본적으로 버튼을 클릭했을 때만 모든 로그 기록을 파일로 출력하고 싶습니다.
Button(controls, text="Export", command = export_log)
-
답변 # 1
관련 자료
- 내 데이터베이스에 장치 고유 '식별자'를 저장할 수 있습니까? (PHP)
- jwt - redis와 같은 키 값 저장소에 암호 재설정 토큰을 저장하지 않는 좋은 이유가 있습니까?
- python - 두 목록의 출력을 목록의 개별 값에 저장할 수 있습니까?
- C ++의 열거 형에 정적 포인터 주소를 저장하는 방법이 있습니까?
- machine learning - 내부적으로 훈련/검증 분할이 발생합니까? 아니면 훈련 세트와 테스트 세트가 하나뿐입니까?
- javascript - 파일을 React 상태로 저장하는 방법이 있습니까?
- android - 사용자 로그인 후 앱 이름 및 앱 아이콘 변경을 변경할 수있는 방법이 있습니까?
- database - 어쨌든 NoSQL db에 파일을 저장하고 PostgreSQL db에 파일 링크 (NoSQL)를 저장할 수 있습니까?
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- vue.js - axios를 사용하여 서버에 이미지를 업로드하는 방법
- python - 문자열에서 특정 문자 제거
이 경우 가능한 해결책은 데이터를
io.StringIO()
에 저장하는 것입니다. 버튼을 누르면 파일로 저장합니다 :