prosource

python.logging 모듈을 사용하여 기존의 모든 로거를 나열하는 방법

probook 2023. 5. 28. 20:53
반응형

python.logging 모듈을 사용하여 기존의 모든 로거를 나열하는 방법

파이썬에서 정의된 모든 로거 목록을 가져올 수 있는 방법이 있습니까?

제 말은, 어떤 것이 존재합니까?logging.getAllLoggers()그러면 목록이 반환됩니다.Logger물건?

저는 python.logging 문서를 검색했지만 그런 방법을 찾을 수 없었습니다.

로거는 계층 구조로 유지됩니다.logging.Manager사례.당신은 질문할 수 있습니다.manager그것이 알고 있는 로거의 루트 로거에.

import logging

loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict]

부르기getLogger(name)사용자가 보유한 자리 표시자 로거를 확인합니다.loggerDict목록에 추가하면 완전히 초기화됩니다.

RootLogger도 목록에 포함하려면 다음과 유사한 작업을 수행합니다.

import logging
loggers = [logging.getLogger()]  # get the root logger
loggers = loggers + [logging.getLogger(name) for name in logging.root.manager.loggerDict]

Python 3.7.4에서 테스트됨

로깅 개체의 계층 구조를 검토하려는 경우 다음을 사용하는 것이 좋습니다.logging_tree.printout():

import logging_tree

logging_tree.printout()

또는 로그 트리를 코드에 액세스할 수 있도록 하려면 다음을 수행합니다.

logging_tree.tree()

자세한 내용은 https://pypi.org/project/logging_tree/ 을 참조하십시오.

언급URL : https://stackoverflow.com/questions/53249304/how-to-list-all-existing-loggers-using-python-logging-module

반응형