Notice
Recent Posts
Recent Comments
Link
«   2025/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

Dev

Python: Logger 본문

Programming/Python

Python: Logger

flutterbylily 2023. 7. 22. 03:02

1. Logger

어떤 프로그램이 실행될 때 발생하는 이벤트를 추적, 로그를 출력한다.

 

 

1) Log Levels

기본 수준은 WARNING.

 

(1) DEBUG(10):   자세한 정보를 갖고 있는 로그. 문제 해결시 필요하면 사용.

 

(2) INFO(20): 프로그램이 예상대로 정상 작동되고 있는지 확인할 때 사용

 

(3) WARNING(30): 예상치 못한 일이 발생, 또는 추후 발생할 문제를 표시. 작업은 정상 진행.

 

(4) ERROR(40): 심각한 문제로 인해 프로그램이 일부 기능을 수행하지 못하고 의도한 정상 기능에 도달하지 못함

 

(5) CRITICAL(50): 더욱심각한 문제로 프로그램 자체가 실행이 얼마든지 중단될 수 있음을 알림.

 

 

 

2. Logger 사용법

 

 

1) Log level

 

  • 모든 로그를 출력하기 위해 Log level을 DEBUG로 설정.
import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug('View all logs')

 

 

 

 

2) Log Formatting

로그 이벤트의 출력 format을 설정. 

 

  • 로그에 현재 날짜와 시간, 로그 level, 로그 메시지 출력
import logging

logging.basicConfig(format='%(asctime)s %(levelname)s:%(message)s',
                    datefmt='%m/%d/%Y %I:%M:%S %p',
                    level=logging.DEBUG)

logging.debug('view all logs.')

 

 

 

 

3) Logging

 

(1) Logger 생성

 

import logging

log = logging.getLogger("test")

 

 

 

(2) Logger Level 설정

생성한 로거 인스턴스에 각각 로그 level  지정, 설정하지 않을 시 default 값 WARNING

import logging

log = logging.getLogger("test")
    
#Logging Level 설정
log.setLevel(logging.DEBUG)

 

 

 

(3) Handler 설정

콘솔창에 출력할지·파일로 로그를 기록할지 설정 가능.

 

  • StreamHandler(): 콘솔 출력
streamHandler = logging.StreamHandler()
log.addHandler(streamhandler)

 

  • FileHandler(): 파일 출력
filehandler = logging.FileHandler('test.log')
log.addHandler(filehandler)

 

 

(4) Formatting 설정

import logging


log = logging.getLogger("test")

log.setLevel(logging.DEBUG)

# Logging Formatting
formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s')

streamhandler = logging.StreamHandler()
streamhandler.setFormatter(formatter)
log.addHandler(streamhandler)


log.debug('view all logs')