728x90
반응형
포매터
logging.Formatter.__init__(fmt=None, datefmt=None, style='%')
3.2버전부터는 style 매개변수가 추가 되었다.
style은 '%', '{', '$' 중 하나를 쓸 수 있으며, 이 중 하나가 지정되지 않으면, '%'가 사용된다.
포맷가능한 LogRecord Attribute
파이썬으로 코딩하고 실행하여 속성별로 어떻게 표시되는지 알아보았다.
1줄 import logging
-중략-
21줄 # 포맷할 수 있는 LogRecord 어트리뷰트의 종류
22줄
23줄 LRAttr = ['%(asctime)s','%(created)f','%(filename)s','%(funcName)s','%(levelname)s','%(levelno)s','%(lineno)d','%(message)s','%(module)s','%(msecs)d','%(name)s','%(pathname)s','%(process)d','%(processName)s','%(relativeCreated)d','%(thread)d','%(threadName)s']
24줄
25줄 LRDesc = ['asctime-s-사람이 읽을 수 있는 LogRecord가 생성된 시간','created-f-LogRecord가 생성된 시간(숫자형시간)','filename-s-pathname의 파일명 부분','funcName-s-로깅 호출을 포함하는 함수의 이름','levelname-s-메시지의 텍스트 로깅 수준','levelno-s-메시지의 숫자 로깅 수준','lineno-d-로깅 호출이 일어난 소스행 번호','message-s-로그된 메시지','module-s-모듈(filename의 이름 부분)','msecs-d-LogRecord가 생성된 시간의 밀리초 부분','name-s-로깅호출에 사용된 로거의 이름','pathname-s-로깅호출이 일어난 소스파일의 전체 경로명','process-d-프로세스 ID','processName-s-프로세스 이름','relativeCreated-d-logging모듈이 로드된 시간을 기준으로 LogRecord가 생서된 시간(밀리초)','thread-d-스레드 ID','threadName-s-스레드 이름']
26줄
27줄 logger = logging.getLogger()
28줄 sh = logging.StreamHandler()
29줄 sh.setLevel(logging.DEBUG)
30줄 for i in range(len(LRAttr)):
31줄 lgfmt = logging.Formatter(fmt=LRAttr[i]+' : %(message)s')
32줄 sh.setFormatter(lgfmt)
33줄 logger.addHandler(sh)
34줄 logger.warning(LRDesc[i])
35줄 print()
다음과 같이 표시된다.
2022-02-24 15:57:21,392 : asctime-s-사람이 읽을 수 있는 LogRecord가 생성된 시간
1645685841.393682 : created-f-LogRecord가 생성된 시간
main.py : filename-s-pathname의 파일명 부분
<module> : funcName-s-로깅 호출을 포함하는 함수의 이름
WARNING : levelname-s-메시지의 텍스트 로깅 수준
30 : levelno-s-메시지의 숫자 로깅 수준
35 : lineno-d-로깅 호출이 일어난 소스행 번호
message-s-로그된 메시지 : message-s-로그된 메시지
main : module-s-모듈(filename의 이름 부분)
400 : msecs-d-LogRecord가 생성된 시간의 밀리초 부분
root : name-s-로깅호출에 사용된 로거의 이름
c:/Users/suo24/Desktop/Projects/Python/logging Test/main.py : pathname-s-로깅호출이 일어난 소스파일의 전체 경로명
9924 : process-d-프로세스 ID
MainProcess : processName-s-프로세스 이름
14 : relativeCreated-d-logging모듈이 로드된 시간을 기준으로 LogRecord가 생서된 시간(밀리초)
12480 : thread-d-스레드 ID
MainThread : threadName-s-스레드 이름
날짜/시간의 포맷을 좀 더 제어해야 하는 경우, datefmt 인자를 제공해서 제어할 수 있다.
import logging
logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logging.warning('is when this event was logged.')
다음과 같이 표시된다.
12/12/2010 11:46:36 AM is when this event was logged.
기본 날짜 형식은 다음과 같다.
%Y-%m-%d %H:%M:%S
끝에 밀리 초가 기록된다.
728x90
반응형
'Python 파이썬 > logging' 카테고리의 다른 글
로깅 구성 파일을 만들어 로깅 구성하기 (0) | 2022.02.24 |
---|---|
유용한 처리기 (0) | 2022.02.24 |
댓글