실행 상태와 오류를 구조적으로 기록합니다.
logging은 DEBUG부터 CRITICAL까지 심각도를 구분하고 출력 위치와 형식을 설정합니다. 라이브러리는 루트 설정을 바꾸지 않고 모듈 이름 logger를 사용하며 예외 처리 중 logger.exception으로 traceback을 남길 수 있습니다.
basicConfig가 INFO 이상만 출력하고 형식을 레벨 이름과 메시지로 정했기 때문에, 두 logger.info 호출이 INFO 강좌 시작: Python과 INFO 진도 completed=18 total=24로 나옵니다. %s와 %d 자리는 메시지를 실제로 출력할 때 채워지고, 로거 이름 course는 형식에 넣지 않아 화면에 보이지 않습니다.
문자열을 미리 조합하기보다 logger.info('user=%s', user_id)처럼 지연 포매팅을 사용합니다. 로그 레벨이 꺼져 있으면 불필요한 문자열 계산도 줄어듭니다.
요청 ID, 작업 ID 같은 상관관계 필드를 일관되게 남기고 토큰, 비밀번호, 개인정보는 마스킹합니다.
정상적인 예상 실패를 모두 ERROR로 남기면 경보가 의미를 잃습니다. 운영 대응 필요성에 맞는 레벨을 선택하세요.
직접 바꿔보세요0으로 나누는 예외를 logger.exception으로 기록하는 경로를 추가하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.