Logging
로그를 남기는 것: 프로그램이 실행되는 동안 일어나는 정보를 기록
- 실행시점에 남겨야 하는 기록
유저를 분석하기 위함 - 개발시점에 남겨야 하는 기록
에러를 잡기 위해서
print로 남기는 것도 가능하다. 파일이나 DB에 남길 수 있다.
모듈별로, 레벨별로 기록을 남길 필요도 있다.
import logging
logging.debug("디버깅")
logging.info("정보를 주는 것")
logging.warning("뭔가 잘못되었으니 조심해라(exception)")
logging.error("에러")
logging.critical("프로그램이 완전히 종료되었을 때")
위처럼 프로그램 진행 상황에 따라 다른 level의 log를 출력한다
logging level : debug(개발시점)>info(운영시점)>warning(운영시점)>error(사용자)>critical(사용자)
import logging
if __name__=='__main__':
logger = logging.getLogger("main")
logging.basicConfig(level=logging.INFO)
# logger.setLevel(logging.ERROR)
logger.debug("디버깅")
logger.info("정보를 주는 것")
logger.warning("뭔가 잘못되었으니 조심해라(exception)")
logger.error("에러")
logger.critical("프로그램이 완전히 종료되었을 때")
파이썬의 warning level은 setting하지 않으면 기본적으로 warning부터 나오도록 되어 있다.
근데 basicConfig를 통해 이 기본 설정을 바꾸어 주고,
setLevel을 사용해서 레벨을 세팅할 수 있다.
위의 코드에서 주석을 풀면 밑의 두 줄만 출력될 것이다.
파일로 저장하기
import logging
if __name__=='__main__':
logger = logging.getLogger("main")
logging.basicConfig(level=logging.INFO)
logger.setLevel(logging.ERROR)
steam_handler=logging.FileHandler("my.log", mode="a", encoding='utf8')
logger.addHandler(steam_handler)
logger.debug("디버깅")
logger.info("정보를 주는 것")
logger.warning("뭔가 잘못되었으니 조심해라(exception)")
logger.error("에러")
logger.critical("프로그램이 완전히 종료되었을 때")
file handler를 사용하면 된다.
이 코드를 실행하면
이렇게 기록된다.
사전에 세팅을 하는 방법
로깅은 사전에 세팅해줘야되는 것이 많다. 로그파일, 레벨 등등
configparser
파일에 설정해서 알림
dictionary 형태로 section, key, value 값의 형태로 설정된 파일을 사용한다.
import configparser
config=configparser.ConfigParser()
config.sections()
config.read('example.cfg') #설정 파일을 읽어온다.
for key in config['SectionOne']:
value=config['SectionOne'][key]
print({}:{}".format(key,value))
argparser
실행시점에 shell에 알림
console창에서 프로그램 실행시 setting정보를 저장한다.
일반적으로 많이 사용한다.
command에서 --v 처럼 옵션에 따라 이벤트를 일어나게 하는 것이다.(command line option)
import argparse
parser=argparse.ArgumentParser(description='sum two integers.')
parser.add_argument('-a', "--a_value", dest="a", help ="A integers", type=int) #argument 종류 추가
parser.add_argument('-b', "--b_value", dest="b", help ="B integers", type=int) #짧은 이름 / 긴 이름 / 표시명 / help 설명 / argument type
args=parser.parse_args()
print(args)
print(args.a)
print(args.b)
print(args.a+args.b)
파이참에서 실행하니까 입력할 수가 없어서 에러가 뜬다.
콘솔에서 해야할 것 같다.
Reference : 부스트캠프 AI Tech 3기 Pre-Course - Module and Project
'개발 > Python' 카테고리의 다른 글
[Python] 이스케이프 문자 Escape Character (0) | 2023.01.03 |
---|---|
[Pandas, Numpy] NaN, nan 을 대처하는 법 (0) | 2022.09.08 |
부스트캠프 AI Tech 3기 Pre-Course [4]-2 File Handling / 파일 (0) | 2021.12.07 |
부스트캠프 AI Tech 3기 Pre-Course [4]-1 Exception Handling / 예외처리 (0) | 2021.12.07 |
부스트캠프 AI Tech 3기 Pre-Course [3] Module and Project (0) | 2021.12.07 |