python 콘 솔 인쇄 log 출력 중복 해결 방법
먼저 이 파일 log.py 의 코드 를 보십시오.
:
'''
:
:
:
:
1-
2-
3- ( , )
4- handler-
5- handler-
6- logger
'''
import logging
import sys
def log():
# 1 -
logger = logging.getLogger('AutoTest')
# 2-
logger.setLevel(logging.DEBUG)
# 3- ( , )
format = logging.Formatter('%(name)s-%(asctime)s-%(message)s')
# 4 - handler -
sh = logging.StreamHandler()
sh.setFormatter(format)
logger.addHandler(sh)
# 5 - handler -
fh = logging.FileHandler('test.log')
fh.setFormatter(format)
logger.addHandler(fh)
# 6 - logger
return logger
if __name__ == '__main__':
logger = log()
logger.info(' log ')
우 리 는 같은 디 렉 터 리 아래 에 다른 파일 을 만 듭 니 다.작성 한 log.py 파일 가 져 오기
from xx import log
log().info('xxx1')
log().info('xxx2')
log().info('xxx3')
출력:이거 결국 뭐야?분명히 세 마디 가 이렇게 많이 인쇄 되 었 는데 이것 은 로그 가 사용 하 는 자주 만 나 는 구덩이 입 니 다.debug 를 통 해 호출 할 때마다 핸들 을 만 드 는 것 을 발견 할 수 있 습 니 다.그래서 반복 합 니 다.그림 과 같 습 니 다.
첫 번 째 호출 이후 handlers 에는 두 개의 handler 가 존재 합 니 다.각각 콘 솔 핸들 StreamHandler 와 파일 핸들 FileHandler 입 니 다.아래 그림 은 두 번 째 호출 에 핸들 을 추가 합 니 다.
실행 하면 handlers 에 스 트림 Handler 가 하나 더 들 어 갔 어 요.
이런 상황 을 어떻게 해결 하 는 지,두 가지 방안 이 있 는데,우 리 는 각각 두 가지 방안 코드 를 열거 합 니 다.
첫 번 째,첫 번 째 는 단일 모드 를 사용 하여 log.py 파일 에 한 줄 을 추가 합 니 다:logger=log().이 문장의 역할 은 대상 을 미리 예화 하 는 것 입 니 다.다른 모듈 은 모두 이 대상 에 적용 되 기 때문에 다른 모듈 가 져 오기 문 구 는 from xxx 패키지.log import logger 로 바 꾼 다음 logger.info(xxxx)출력 로 그 를 사용 하면 됩 니 다.
……위쪽 코드 생략
# 6 - logg
return logger
#
logger = log()
if __name__ == '__main__':
logger = log()
logger.info(' log ')
가 져 오기:
from xx import logger
logger.info('xxx1')
logger.info('xxx2')
logger.info('xxx3')
출력:두 번 째 방안:log.py 는 handlers 가 존재 하 는 지 판단 할 때마다
……
# 4 - handler -
sh = logging.StreamHandler()
sh.setFormatter(format)
# 5 - handler -
fh = logging.FileHandler('test.log')
fh.setFormatter(format)
# handler
if not logger.handlers:
logger.addHandler(sh)
logger.addHandler(fh)
# 6 - logg
return logger
if __name__ == '__main__':
logger = log()
logger.info(' log ')
파일 코드 가 져 오기
from xx import log
log().info('xxx1')
log().info('xxx2')
log().info('xxx3')
출력:대상 을 대상 으로 하 는 방안 은 똑 같이 상기 두 가지 이 므 로 스스로 해결 하 시기 바 랍 니 다.
총결산
python 콘 솔 인쇄 log 출력 중복 해결 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 인쇄 log 중복 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.