### log 세팅
import logging
def get_logger(name=None):
# 1 logger instance를 만듭니다.
logger = logging.getLogger(name)
# 2 logger의 level을 가장 낮은 수준인 DEBUG로 설정합니다.
logger.setLevel(logging.DEBUG)
# 3 formatter 지정하여 log head를 구성해줍니다.
## asctime - 시간정보
## levelname - logging level
## funcName - log가 기록된 함수
## lineno - log가 기록된 line
formatter = logging.Formatter("%(asctime)s - %(levelname)s - [%(funcName)s:%(lineno)d] - %(message)s")
# 4 handler instance 생성하여 console 및 파일로 저장할 수 있도록 합니다. 파일명은 txt도 됩니다.
console = logging.StreamHandler()
file_handler_debug = logging.FileHandler(filename="log_debug.log", encoding='utf-8')
file_handler_error = logging.FileHandler(filename="log_error.log", encoding='utf-8')
# 5 handler 별로 다른 level 설정합니다. 설정한 level 이하 모두 출력,저장됩니다.
console.setLevel(logging.INFO)
file_handler_debug.setLevel(logging.DEBUG)
file_handler_error.setLevel(logging.ERROR)
# 6 handler 출력을 format 지정방식으로 합니다.
console.setFormatter(formatter)
file_handler_debug.setFormatter(formatter)
file_handler_error.setFormatter(formatter)
# 7 logger에 handler 추가합니다.
logger.addHandler(console)
logger.addHandler(file_handler_debug)
logger.addHandler(file_handler_error)
# 8 설정된 log setting을 반환합니다.
return logger
로그 코드 : https://leftday.tistory.com/14
오류1.
logger.info("response ", status)
이렇게 하면 오류남
logger.info("response status")
logger.info(status)
하나씩만 가능
오류2. attributeerror: 'logger' object has no attribute 'error'
log 찍을 때 logger.error(response) 이런식으로 소문자로 써야하는데 대문자(ERROR)로 써서 난 오류였음
출처 : https://stackoverflow.com/questions/44135225/attributeerror-logger-object-has-no-attribute-warning
오류3. 콘솔에는 오류메시지 한글로 제대로 찍히는데 .log 파일에는 한글이 다 깨져서 나옴
file_handler_debug = logging.FileHandler(filename="log_debug.log", encoding='utf-8')
file_handler_error = logging.FileHandler(filename="log_error.log", encoding='utf-8')
FileHandler 쪽에 인코딩 명시해주면 됨
출처 : https://selfdevelope.tistory.com/809
+ 참고
DEBUG : 상세한 정보. 보통 문제를 진단할 때만 필요합니다.
INFO : 예상대로 작동하는지에 대한 확인.
WARNING : 예상치 못한 일이 발생했거나 가까운 미래에 발생할 문제(예를 들어 ‘디스크 공간 부족’)에 대한 표시. 소프트웨어는 여전히 예상대로 작동합니다.
ERROR : 더욱 심각한 문제로 인해, 소프트웨어가 일부 기능을 수행하지 못했습니다.
CRITICAL : 심각한 에러. 프로그램 자체가 계속 실행되지 않을 수 있음을 나타냅니다.
출처 : https://docs.python.org/ko/3/howto/logging.html
'기록 > Python' 카테고리의 다른 글
[Python] 로그 일별 생성 PermissionError: [WinError 32] 오류 해결 기록 (0) | 2022.10.27 |
---|---|
[Python/Linux] 파이썬 로그 일별 생성 및 주기적으로 삭제 설정 방법 기록 (0) | 2022.10.20 |
[Python] 파이썬 requests.post 에 header 추가 (0) | 2022.10.14 |
[Python] 파이썬 flask 서버에서 POST 방식으로 데이터 받기 (0) | 2022.10.14 |
[Pycharm] 파이참에서 원격서버 SSH 연결해서 코드 자동 반영하는 방법 (0) | 2022.10.06 |