일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자료구조
- Torch
- 딥러닝
- Python
- nerf
- cs
- nlp
- web
- math
- Front
- 머신러닝
- GAN
- algorithm
- 알고리즘
- Depth estimation
- classification
- REACT
- dl
- CV
- SSL
- Meta Learning
- 3d
- ML
- FineGrained
- pytorch
- clean code
- PRML
- FGVC
- Vision
- computervision
- Today
- Total
KalelPark's LAB
[ CLEAN CODE ] Clean Python, Logging 활용하기 본문
Logging이란?
- 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동을 의미합니다.
어떤 소프트웨어가 실행될 때 발생하는 이벤트를 추적하는 수단입니다. 코드에 로깅 호출을 추가하여,
특정 이벤트가 발생했음을 나타냅니다.
- 로그(log)를 활용하면 재현하기 힘든 버그에 대한 유용한 정보를 제공할 수 있습니다.
또한, 성능 및 통계에 대한 정보를 제공합니다. 설정이 가능한 경우, 로그는 예기치 못한 특정 문제들을 디버그할 수 있습니다.
* 일반적으로, Shell과 같은 커멘드 인터페이스에서는 print보다 logging을 사용하는 것이 낫다고 말합니다.
Python에서는 logging을 위한 유용한 라이브러리를 제공합니다.
Log Levels
* 로그는 각 래벨 중 하나를 가지고, 각기 다른 용도를 지니고 있습니다.
- DEBUG : 프로그램 작동에 대한 상세한 정보를 가지는 로그, 문제의 원인을 파악할 경우에만 사용
- INFO : 프로그램이 예상대로 진행되고 있는지 트래킹 하기 위한 사용
- WARNING : 예상치 못한 일을 표기할 때 사용
- ERROR : 심각한 문제로 인해, 프로그램이 의도한 기능을 수행하지 못하는 경우 표기
- CRITICAL : 심각한 문제로 인하여, 프로그램 실행 자체가 중단될 수 있는 경우 표기
* 로그를 텍스트 파일의 형태로 저장하기
import logging
logging.basicConfig(filename = "modle.log", level = logging.DEBUG)
logging.debug("Start Logging")
logging.info("Step - 1")
logging.warning("type isn't same")
logging.error("ASCII CODE ERROR")
* 만약 logging을 덮어 씌워 하고 싶다면 filemode를 "w"로 설정하면 됩니다.
import logging
logging.basicConfig(filename="example.log", filemode="w", level=logging.WARNING)
추가적인 내용들은 하단의 링크를 참고하면 됩니다.
다양한 기능들이 존재합니다. 여러 기능들을 추가한다면..! 더욱 세부적으로 logging하는 것이 가능합니다.
https://jh-bk.tistory.com/40#Log%--Levels
https://bab-dev-study.tistory.com/24
'Python > CLEAN CODE' 카테고리의 다른 글
[ CLEAN CODE ] Clean Python, YACS(Yet Another Configuration System)란? (0) | 2023.01.14 |
---|---|
[ CLEAN CODE ] Clean Python, StaticMethod, ClassMethod란? (0) | 2023.01.13 |
[ CLEAN CODE ] Clean Python, Dictionary 활용하기 (0) | 2023.01.02 |
[ CLEAN CODE ] Clean Python, Property 활용하기 (0) | 2023.01.01 |
[ CLEAN CODE ] Clean Python, Argparse 유용하게 활용하기 (0) | 2022.12.30 |