2017-05-10 17 views

답변

1
당신이 (안 테스트) 다음 예에서와 같이, 그 __str__ 방법 실제 서식을 수행하는 사용자 지정 메시지 클래스를 사용하여 수행 할 수

:

from bottle import SimpleTemplate 
class BottleTemplateMessage(object): 
    def __init__(self, source, **kwargs): 
     self.template = SimpleTemplate(source) 
     self.context = kwargs 

    def __str__(self): 
     return self.template.render(**self.context) 

다음

import logging 
logging.warning(BottleTemplateMessage('Hello, {{name}}!', name='world')) 

같은 것을 인쇄해야합니다.

WARNING:root:Hello, world! 
+0

호출자 코드가''logging.warning ('Hello, {{name}}!', name = 'world')''으로 단순화되도록이 동작을 상류에 주입하는 방법이 있습니까? –

+0

어댑터를 사용하고 그 사이를 로깅하는 것과 같은 접근법이 없으므로 (예 : 타사 라이브러리가 정상적으로 계속 로그 할 수 있도록 - 제 3 자 코드를 사용하지 않으면 '로거'가 서브 클래 싱 될 수 있다고 생각합니다 ...)) –