logging — 이벤트 로깅¶
이 모듈은 표준 Python logging 패키지의 경량 부분집합을 MicroPython에 맞게 적용하여 제공합니다. 계층적으로 명명된 Logger 객체를 통한 레벨 기반 로깅, 소규모 핸들러 집합(StreamHandler, FileHandler), Formatter를 통한 printf 스타일 포매팅, 그리고 루트 로거에 대해 동작하는 함수와 동등한 모듈 수준 편의 함수를 지원합니다.
이 모듈은 익숙한 CPython API를 충분히 유사하게 따르므로 표준 라이브러리용으로 작성된 간단한 애플리케이션은 수정 없이 동작합니다. 필터, 다중 프로세스 잠금, 구성 파일 형식, 그리고 대부분의 핸들러 클래스는 제공되지 않습니다.
레벨 상수¶
함수¶
- logging.getLogger(name: str | None = None) Logger¶
name으로 등록된
Logger를 반환하며, 처음 사용할 때 생성합니다. name이None이면 루트 로거가 반환됩니다.name="root"로(또는 name을 지정하지 않고) 처음 호출하면sys.stderr에 기록하는 기본StreamHandler를 연결하기 위해basicConfig가 암묵적으로 호출됩니다.
- logging.log(level: int, msg: str, *args) None¶
루트 로거에 level 수준으로 메시지를 기록합니다. args는 printf 스타일
%포매팅을 사용하여 msg에 삽입됩니다. 단일 dict 인수는 매핑으로 사용됩니다.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
getLogger().exception(msg, *args, exc_info=exc_info)와 동등합니다. 메시지를ERROR수준으로 기록하며, exc_info가 참이면 현재 활성 예외의 트레이스백을 추가로 포매팅합니다. exc_info가 그 자체로BaseException이면 해당 예외의 트레이스백이 사용되고, 그렇지 않으면 가능한 경우sys.exc_info()를 참조합니다.
- logging.addLevelName(level: int, name: str) None¶
텍스트 name을 숫자 level과 연결하여
Formatter가%(levelname)s를 통해 이를 렌더링할 수 있도록 합니다.
- logging.basicConfig(filename: str | None = None, filemode: str = 'a', format: str | None = None, datefmt: str | None = None, level: int = WARNING, stream=None, encoding: str = 'UTF-8', force: bool = False) None¶
루트 로거를 단일 핸들러로 구성합니다.
filename이 제공되면 filemode와 encoding을 사용하여
FileHandler가 생성됩니다. 그렇지 않으면 stream(기본값은sys.stderr)에 기록하는StreamHandler가 사용됩니다.format과 datefmt는 새
Formatter에 전달됩니다.level은 핸들러의 레벨과 루트 로거의 레벨을 모두 설정합니다.
루트 로거에 이미 핸들러가 있으면, force가
True가 아닌 한 이 함수는 아무 작업도 수행하지 않으며, 그러한 경우 기존 핸들러는 닫히고 교체됩니다.
클래스¶
- class logging.Logger(name: str, level: int = NOTSET)¶
명명된 로거입니다. 동일한 이름에 대해
getLogger가 동일한 인스턴스를 반환할 수 있도록, 직접 생성하지 말고getLogger를 통해 로거를 생성하십시오.- log(level: int, msg: str, *args) None¶
msg를 level 수준으로 기록합니다. args는
%연산자로 msg에 삽입됩니다. 첫 번째 위치 인수가 dict이면 매핑으로 사용됩니다.
- class logging.Handler(level: int = NOTSET)¶
모든 핸들러의 기본 클래스입니다. 하위 클래스는
emit()을 구현합니다.- close() None¶
핸들러가 보유한 리소스를 해제합니다.
shutdown에 의해 호출되며,FileHandler가 닫힐 때도 호출됩니다.
- class logging.StreamHandler(stream=None)¶
포매팅된 레코드 다음에
self.terminator(기본값"\n")를 붙여 stream에 기록하는 핸들러입니다. stream의 기본값은sys.stderr입니다.- stream¶
대상 스트림 객체입니다.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
주어진 mode와 encoding으로 filename을 열고 포매팅된 레코드를 기록하는
StreamHandler하위 클래스입니다. 기본 파일은close()시 닫힙니다.
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
LogRecord인스턴스를 문자열로 렌더링합니다.fmt는 printf 스타일 템플릿입니다. 인식되는 키는
%(name)s,%(message)s,%(msecs)d,%(asctime)s,%(levelname)s입니다. 설정하지 않으면 기본값은"%(levelname)s:%(name)s:%(message)s"입니다.datefmt는
%(asctime)s를 렌더링하는 데 사용되는time.strftime템플릿입니다. 기본값은"%Y-%m-%d %H:%M:%S"입니다.- formatTime(datefmt: str, record: LogRecord) str | None¶
time.strftime과 datefmt를 사용하여record.ct를 포매팅합니다.time.strftime을 사용할 수 없는 플랫폼에서는None을 반환합니다.
- format(record: LogRecord) str¶
record를 렌더링합니다. 템플릿이
asctime을 사용하면 먼저formatTime()이 호출되어record.asctime을 채웁니다.