https://github.com/Delgan/loguru
loguru 모듈은 파이썬에서 사용하는 로깅(logging) 모듈 중 하나로, 간편하고 직관적인 사용법으로 인기가 많습니다. 로그 메시지를 출력하는데 있어서 다양한 기능을 제공합니다.
로그를 통해 애플리케이션의 상태를 모니터링하고 디버깅하는 것은 애플리케이션 개발에서 매우 중요합니다. 그러나 로깅은 종종 복잡하고 어렵습니다. 이를 해결하기 위해 loguru 모듈은 사용하기 쉬운 문법과 다양한 기능을 제공하여 개발자들이 간편하게 로깅을 구현할 수 있도록 도와줍니다.
loguru 모듈은 파이썬 3에서만 사용 가능합니다.
loguru 모듈 설치
loguru 모듈은 pip를 이용해 간단하게 설치할 수 있습니다.
pip3 install loguru
모듈 사용 방법
기본 사용법
loguru 모듈은 다양한 기능을 제공하지만, 가장 기본적인 사용 방법은 다음과 같습니다.
from loguru import logger
logger.add("file.log", format="{time} {level} {message}", level="INFO")
logger.info("Hello, World!")
위 코드에서는 "file.log" 파일에 로그 메시지를 저장하는데, 로그 메시지의 포맷은 "{time} {level} {message}"으로 설정되어 있습니다. 로그 레벨은 "INFO"이며, 로그 메시지는 "Hello, World!"입니다. 로그는 아래와 같이 file.log 파일에 기록됩니다.
메시지 출력
파일 로그 기록
주요 기능
loguru 모듈은 다양한 기능을 제공합니다. 그 중에서 주요 기능 중 몇 가지를 소개합니다.
로그 파일 분할
로그 파일이 계속해서 커져서 용량이 증가하는 것을 방지하기 위해서는 로그 파일을 분할해야 합니다. loguru 모듈은 로그 파일 분할을 간단하게 설정할 수 있습니다.
from loguru import logger
logger.add("file_{time}.log", rotation="500 MB")
위 코드에서는 로그 파일이 500MB가 되면 자동으로 분할됩니다.
콘솔 출력
로그 메시지를 파일뿐만 아니라 콘솔에 출력할 수 있습니다.
from loguru import logger
logger.add(sys.stdout, format="{time} {level} {message}", level="DEBUG")
위 코드에서는 로그 메시지를 콘솔에 출력하며, 로그 레벨은 "DEBUG" 이상의 메시지만 출력됩니다.
로그 메시지 포맷팅
loguru 모듈은 로그 메시지 포맷팅을 매우 유연하게 지원합니다. 사용자가 지정한 로그 메시지 포맷을 사용하거나, 내장된 로그 포맷을 사용할 수 있습니다.
from loguru import logger
logger.add("file.log", format="{time} {level} {message}", level="INFO")
logger.info("This is a message with a parameter: {}", "parameter")
위 코드에서는 "This is a message with a parameter: parameter" 라는 메시지가 출력됩니다.
예외 로깅
loguru 모듈은 예외 로깅을 지원합니다. 예외가 발생하면, 해당 예외에 대한 정보를 로그에 기록할 수 있습니다.
from loguru import logger
try:
1 / 0
except ZeroDivisionError:
logger.exception("Exception occurred")
위 코드에서는 "Exception occurred" 라는 로그 메시지와 함께 해당 예외에 대한 정보가 출력됩니다.
결론
loguru 모듈은 파이썬에서 로깅(logging)을 할 때 간편하고 직관적인 사용법으로 많은 개발자들에게 좋은 평가를 받고 있습니다. 위에서 소개한 주요 기능 외에도 다양한 기능들을 제공하니, 필요에 따라 자세한 문서를 참고하시기 바랍니다.
'스터디 > 파이썬' 카테고리의 다른 글
XML 데이터 파싱하기 (xmltodict) (0) | 2022.10.03 |
---|---|
[파이썬 모듈] rich 모듈 사용 방법 (터미널에 이쁘게 출력하기) (0) | 2022.10.03 |
crossplane 모듈 (nginx 설정 파서) (0) | 2022.10.03 |
[파이썬 모듈] Pyyaml 모듈 (yaml 파일을 다뤄보자) (0) | 2022.10.03 |