IT박스

PyLint 메시지 : logging-format-interpolation

itboxs 2020. 7. 17. 21:12
반응형

PyLint 메시지 : logging-format-interpolation


다음 코드의 경우 :

logger.debug('message: {}'.format('test'))

pylint 다음과 같은 경고가 발생합니다.

로깅 형식 보간 (W1202) :

로깅 함수에서 % 형식화를 사용하고 % 매개 변수를 인수로 전달 로깅 명령문에 "logging. (format_string.format (format_args ...))"의 호출 양식이있는 경우 사용됩니다. 이러한 호출은 대신 % 형식을 사용해야하지만 매개 변수를 인수로 전달하여 로깅 함수에 보간을 유지합니다.

이 경고를 해제 할 수 있지만 알고 싶습니다. format()파이썬 3에서 문장을 출력하기 위해 선호되는 방법을 사용한다고 가정 했습니다. 로거 문장에 왜 이것이 맞지 않습니까?


로거 명령문은 로거 호출에 제공된 추가 인수를 사용하여이 문자열의 지연 보간을 제공하기 위해 문자열과 같은 이전 "%"형식을 사용하기 때문에 사실이 아닙니다. 예를 들어 대신 :

logger.error('oops caused by %s' % exc)

넌해야 해

logger.error('oops caused by %s', exc)

따라서 메시지가 실제로 생성 된 경우에만 문자열이 보간됩니다.

를 사용할 때는이 기능을 이용할 수 없습니다 .format().


문서 최적화 섹션에 따라 logging:

메시지 인수의 형식화는 피할 수 없을 때까지 지연됩니다. 그러나 로깅 메소드에 전달 된 인수를 계산하는 것도 비용이 많이들 수 있으며 로거가 이벤트를 버릴 경우이를 수행하지 않는 것이 좋습니다.

참고 URL : https://stackoverflow.com/questions/34619790/pylint-message-logging-format-interpolation

반응형