2013-06-03 13 views
27

Esiste un buon wrapper disponibile per la registrazione basata sul livello in golang? In caso negativo, come dovrei procedere per implementarne uno da solo?Come implementare la registrazione basata sul livello in golang?

Quello che voglio è piuttosto semplice. Voglio alcune funzioni, ad es.

log.Error() 
log.Info() 

ecc che espongono le loro uscite a stdout così come salvare questi in un file di log (sulla base del livello dato al programma come argomento a riga di comando). Come implementare questo wrapper?

+2

https://github.com/jcelliott/lumber – elithrar

+0

@elithrar grazie! – pymd

+0

@elithrar, grazie, è semplice e potente –

risposta

3

Dai uno sguardo allo http://cgl.tideland.biz e lì al pacchetto "applog". Funziona in questo modo.

PS: L'intero CGL è attualmente rielaborato e sarà presto rilasciato con nuove funzionalità, ma con un nome diverso. ;)

+0

grazie mille per il tuo aiuto! – pymd

+0

purtroppo i collegamenti sono morti –

+0

Tutti i collegamenti sono morti o non hanno nulla a che fare con la registrazione. – neurosnap

4

Penso che seelog si adatti al tuo requirements e sembra essere molto popolare in quanto si apre spesso nelle discussioni di registro. Non l'ho mai usato sul serio, quindi non posso commentare oltre.

+0

Sembra che seelog debba acquisire/rilasciare un blocco globale per ogni istruzione. –

2

stdlog adatta perfettamente le vostre esigenze:

log := stdlog.GetFromFlags() 
log.Info("Connecting to the server...") 
log.Errorf("Connection failed: %q", err) 
1

Uber-go/Zap: veloce, strutturato, livellato registrazione in Go

0

Attualmente sto lavorando con rlog e come il loro approccio. Il codice sembra buono, semplicistico e sufficientemente documentato.

Ciò che mi ha convinto:

  • dipendenze esterne
  • posso usare rlog.Info() da nessuna parte senza passare riferimenti
  • buon uso delle variabili d'ambiente
  • numero arbitrario di tracce per esempio rlog.Trace(4, "foo")
0

Ho aggiunto il supporto del livello di registrazione al pacchetto di log Go incorporato.Potete trovare il mio codice qui:

https://github.com/gologme/log

Oltre ad aggiungere il supporto per informazioni, avvertire, e di debug, gli utenti possono anche definire i propri livelli di registrazione arbitrari. I livelli di registrazione sono abilitati e disabilitati singolarmente. Ciò significa che è possibile attivare i registri di debug senza ottenere anche tutto il resto.

Problemi correlati