Sto cercando un modello di progettazione per la registrazione dal codice della libreria. Supponiamo che io abbia una funzione in un file di libreria che prevedo verrà utilizzato da più front-end (assumiamo una CLI e un web):
def foo(a,b):
log("Processing a")
p(a)
log("Processing b")
p(b)
Da dove viene il "log" di foo? Dovrebbe:
- Avere un logger di argomenti opzionale che fornisce l'oggetto che implementa il log?
- Consulta un repository di archivi di ordinamento - ad esempio
logger.getLogger("mylibrary")
- Essere sempre parte di un oggetto (nessun metodo statico / di classe i.o.w) e l'oggetto essere inizializzato con un logger come per (1)?
- ...
Supponiamo che stiamo parlando di un linguaggio con framework di registrazione incorporato come Python o un framework che viene spesso usato come log4j in Java.