La mia stringa di formato corrente è:
formatter = logging.Formatter('%(asctime)s : %(message)s')
e voglio aggiungere un nuovo campo chiamato app_nameche avrà un valore diverso in ogni script che contiene questo formattatore.
import logging
formatter = logging.Formatter('%(asctime)s %(app_name)s : %(message)s')
syslog.setFormatter(formatter)
logger.addHandler(syslog)
Ma non sono sicuro di come passare quel app_namevalore al logger per interpolare nella stringa di formato. Ovviamente posso farlo apparire nel messaggio di registro passandolo ogni volta, ma questo è disordinato.
Ho provato:
logging.info('Log message', app_name='myapp')
logging.info('Log message', {'app_name', 'myapp'})
logging.info('Log message', 'myapp')
ma nessuno funziona.
logchiamata? Se è così, guarda i documenti in cui dice "Questa funzionalità può essere utilizzata per iniettare i tuoi valori in un LogRecord ..." Ma questo sembra un ottimo caso per usarlologger = logging.getLogger('myapp')e inserirlo nellalogger.infochiamata.