Mój obecny ciąg formatu to:
formatter = logging.Formatter('%(asctime)s : %(message)s')
i chcę dodać nowe pole o nazwie, app_name
które będzie miało inną wartość w każdym skrypcie zawierającym ten formater.
import logging
formatter = logging.Formatter('%(asctime)s %(app_name)s : %(message)s')
syslog.setFormatter(formatter)
logger.addHandler(syslog)
Ale nie jestem pewien, jak przekazać tę app_name
wartość do programu rejestrującego, aby interpolować do ciągu formatu. Oczywiście mogę sprawić, że pojawi się w komunikacie dziennika, przekazując go za każdym razem, ale jest to bałagan.
Próbowałem:
logging.info('Log message', app_name='myapp')
logging.info('Log message', {'app_name', 'myapp'})
logging.info('Log message', 'myapp')
ale żadna nie działa.
log
połączenia? Jeśli tak, spójrz na dokumenty, w których jest napisane „Ta funkcja może być użyta do wstrzyknięcia własnych wartości do LogRecord…” Ale wydaje się, że jest to główny przypadek użycialogger = logging.getLogger('myapp')
i upieczenia go wlogger.info
wywołaniu.