로그(log)

이상해씨·2023년 4월 13일
0

AI 기초

목록 보기
15/15

로그

  • 프로그램의 기록을 의미
  • 접근, 예외, 특정 함수 사용과 관련된 정보 수집

1. 디렉토리 다루기

  • OS 모듈
import os
os.mkdir()
  • 디렉토리 확인
if not os.path.isdir("log"):
	os.mkdir("log")
  • pathlib 모듈
    - 객체로 주소정보를 저장하여 쉽게 접근 할 수 있다.

    import pathlic
    
    cwd=pathlic.Path.cwd() # 현 디렉토리 정보 
    cwd.parent # 부모 디렉토리 정보 get

2. logging

  • 로그 남기기 : 실행되는 동안 기록 남기는 행위
  • 접근, 예외, 함수 사용 정보등을 저장
  • logging 방법:
    1. 콘솔(console) 출력(따로 기록 및 저장은 안됨)
    2. 파일 저장
    3. DB에 저장
  • 로그분석에 로그파일이 사용됨
  • 실행시점과 개발시점에서 남기는 기록의 목적이 다름.
    1. 실행시점 : 기록확인
    2. 개발시점 : 에러확인

2-1. log 파일 생성

  1. 디렉토리 존재 확인
  2. 파일 존재 확인
  • 없으면 생성하는 코드 작성(feat. 검색)
## print와 logging
print
- 콘솔에 출력은 가능하나, 기록되지는 않음

2-2. logging 모듈

import logging

logging.debug("틀림")
logging.info("확인")
logging.warning("조심")
logging.error("에러")
logging.critical("프로그램 종료")

2-2-1. logging level

  • 프로그램 상황에 따른 level log 출력
  • debug > info > warning > error > critical
  • warning이 가장 기본적인 level
  • 기본 level을 바꾸려면 basicConfig를 사용
  • StreamHandler : 출력을 어디에 할 것인지 설정
import logging

#logger선언
logger =logging.getLogger("main")
logging.basicConfig(level=logging.DEBUG)

# logger의 output 방법 선언
hander =logging.StreeamHandler("test.log", mode= "w", encoding ="utf8")

# logger의 output 등록
logger.addHandler(hander)

2-3. loggging 설정

  • 매 코드에 logging을 하기에는 번거로우니 따로 logging 설정을 한다.

1) configparser 파일에 저장
2) argparser 실행시점에 저장

2-3-1. configparser

  • 프로그램 설정을 파일에 저장
  • 설정파일은 section, key, value 값 형태 구성됨.
  • Dict Type으로 설정파일 호출

2-3-2. argparser

  • 프로그램이 콘솔창에서 실행되면 설정정보 저장
  • 대부분 파이썬 프로그램을 제공
  • 일반적으로 argparser 사용
  • argparser외의 특수모듈도 존재 (TF)
  • Command Line Option 이라 불림



2-4. logging 적용하기

2-4-1. logging formater

  • log 결과의 포멧을 설정
    날짜, 레벨, process id, 메시지
formatter = logging.Formatter ('%(asctime)s %(levelname)s %(process)d %(message)s')

참고

profile
공부에는 끝이 없다

0개의 댓글