[python] logging.info가 콘솔에 표시되지 않지만 경고 및 오류가 발생합니다.

로 이벤트를 기록 logging.info하면 Python 터미널에 표시되지 않습니다.

import logging
logging.info('I am info')  # no output

반대로 logging.warndo로 기록 된 이벤트 는 터미널에 나타납니다.

import logging
logging.warn('I am warning')  # outputs "I am warning"

logging.info콘솔에 인쇄 할 수있는 환경 수준 변경이 있습니까? 각 Python 파일을 변경하지 않으려 고합니다.



답변

루트 로거는 항상 경고 수준으로 기본 설정됩니다. 전화 해보세요

logging.getLogger().setLevel(logging.INFO)

그리고 당신은 괜찮을 것입니다.


답변

@ztyx가 기본 로거 수준이 경고라고 말했듯이. 더 낮은 수준으로 설정해야합니다

logging.basicConfig 를 사용 하고 로거 수준을 설정 하여 수행 할 수 있습니다 .

logging.basicConfig(level=logging.DEBUG)


답변

위의 솔루션은 저에게 효과적이지 않았지만 여기 의 코드는 다음과 같이 작동했습니다 .

# set up logging to file
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%m-%d %H:%M',
                    filename='/temp/myapp.log',
                    filemode='w')
# define a Handler which writes INFO messages or higher to the sys.stderr
console = logging.StreamHandler()
console.setLevel(logging.INFO)
# add the handler to the root logger
logging.getLogger('').addHandler(console)

(가독성을 위해 코드의 일부를 생략했습니다)


답변