2015-01-28 4 views
1

logging.ini에 사용자 지정 처리기가 있습니다. 이 처리기는 다른 외부 클래스의 메서드를 첫 번째 인수로 전달해야합니다. 이 같은 access to external objects docs처리기의 args에있는 외부 개체

그래서 시도하고 뭔가 : 로깅 문서는 내가 ext://의 문자열 접두어에 의해 외부의 개체를 참조 할 수 말한다

[handler_rabbitHandler] 
class=company.common.logger.GELFRabbitHandler 
level=DEBUG 
formatter=simpleFormatter 
args=('ext://company.common.logger.AMQPFactory.get_connection',) 

을하지만 보인다 그 args의 경우 ext://은 설명서에 설명 된대로 해결되지 않습니다. args에있는 외부 객체의 메소드를 참조 할 수있는 방법이 있습니까?

참고 :

많은 예는 다음과 같이 인수에 sys.stdout 보여

args=(sys.stdout,) 

은 내가 가져 오기 오류가 우리의 사용자 지정 개체와 같은 시도 할 경우,하지만 난 방법을 모르는 에

args=(company.common.logger.AMQPFactory.get_connection,) 

결과 :

로깅의 네임 스페이스로 가져올 수 있습니다

답변

0

ext:// 물건은 사전 기반 구성 (dictConfig)을 사용하는 것입니다 하지 INI 파일 기반 구성 (fileConfig), 작동합니다. 당신은 할 수 있습니다

는 당신이 fileConfig를 호출하기 전에

logging.company = company 

를 설정하도록함으로써 "정의되지 않은 '회사"오류를 제거합니다. 하지만 실제로는 dictConfig으로 전환하는 것이 좋습니다.