Io uso un LoggerAdapter
per consentire al mio python di registrare output TID Linux invece degli ID univoci lunghi. Ma in questo modo non modificarne uno esistente logger
ma creare un nuovo oggetto:Modo elegante per rendere logging.LoggerAdapter disponibile ad altri moduli
new_logger = logging.LoggerAdapter(
logger=logging.getLogger('mylogger'),
extra=my_tid_extractor())
Ora voglio che questo LoggerAdapter
essere utilizzato da alcuni moduli. Finché io so una variabile globale viene utilizzato come registratore posso fare qualcosa di simile:
somemodule.logger = new_logger
Ma questo non è bello - funziona solo in un paio di casi ed è necessario sapere le variabili logger utilizzati da i moduli.
Conoscete un modo per rendere disponibile a livello globale LoggerAdapter
ad es. chiamando s.th. come
logging.setLogger('mylogger', new_logger)
O, in alternativa: c'è qualche altro modo per lasciare che gli ID di thread Linux Python logging
uscita come stampato da ps
?
Bella soluzione. :) Grazie! – erip