batch 파일로 python을 실행 시킬 경우 log를 남기도록 하는 방법

 





python logger instance로 로그찍기

로그레벨 순서 : debug > info > warning > error > critical setLevel 에서 logger. + 대문자 DEBUG, INFO, WANRING, ERROR, CRITICAL 옵션 설정 속도가 문제가 되는경우는 logger가 아닌 print 사용 디버깅시에는 print를 logger.debug로 대체하여 사용하면 출력 위치 확인 가능합니다.




batch 파일로 Python 스크립트를 실행할 때 로그를 남기려면 다음과 같이 하면 됩니다.

  1. Python 스크립트에 로깅 기능 추가: Python 스크립트에 로깅 기능을 추가합니다. 로깅을 위해서는 Python 내장 logging 모듈을 사용하면 됩니다.

1pythonCopy codeimport logging 2 3logging.basicConfig(filename='log.txt', level=logging.DEBUG) 4logging.debug('This is a debug message') 5logging.info('This is an info message') 6logging.warning('This is a warning message') 7logging.error('This is an error message') 8logging.critical('This is a critical message') 9
  1. Batch 파일 생성: 텍스트 편집기 등을 사용하여 다음과 같이 Batch 파일을 작성합니다.

1batchCopy code@echo off 2python my_script.py >> log.txt 2>&1 3

위 코드에서 "my_script.py"는 실행하려는 Python 스크립트의 파일명입니다. ">>" 연산자는 파일에 append하며, "2>&1"은 stderr를 stdout으로 보내는 것을 의미합니다. 따라서 위 Batch 파일은 "my_script.py"를 실행하고, 출력을 "log.txt" 파일에 append하면서 stderr도 stdout으로 보냅니다.

  1. Batch 파일 실행: Batch 파일을 실행하면 Python 스크립트가 실행되면서 로그가 "log.txt" 파일에 append됩니다.

참고로, 로깅 레벨은 필요에 따라 수정할 수 있습니다. 예를 들어, 위 코드에서 로깅 레벨을 "logging.DEBUG"로 설정하면 "debug" 레벨 이상의 모든 로그가 기록됩니다.


------------ log도 남기고 실행창도 사라지지 않도록 하는법 ----------

Batch 파일로 Python 스크립트를 실행할 때 Python 실행 창도 함께 띄우려면, 다음과 같이 Batch 파일을 수정하면 됩니다.

1batchCopy code@echo off 2start "" python my_script.py >> log.txt 2>&1 3

위 코드에서 "start" 명령어는 새 창에서 명령어를 실행하도록 합니다. 첫 번째 인수는 새 창의 제목입니다. 빈 문자열을 전달하면 새 창의 제목이 없어집니다. 두 번째 인수는 실행할 명령어입니다. 위 코드에서는 "python my_script.py"를 실행하고, 출력을 "log.txt" 파일에 append하면서 stderr도 stdout으로 보냅니다.

이렇게 수정하면 Batch 파일을 실행하면 Python 실행 창과 함께 로그 파일도 출력됩니다. 다만, 이 경우 Python 실행 창이 자동으로 닫히지 않습니다. 따라서, 작업을 완료한 후에는 Python 실행 창을 수동으로 닫아야 합니다.

0 댓글