Qual è un modo idiomatico per eseguire l'accesso a Go?Come implementare la registrazione idiomatica in una libreria Go?
risposta
Creare un file che dichiari una variabile globale logger. Quindi, utilizzare la funzione idiomatica init() di Vai per inizializzare la variabile all'avvio.
logger.go:
package xxx
import (
"log"
"os"
)
var logger *log.Logger
func init() {
logger = log.New(os.Stderr, "xxx: ", log.Ldate | log.Ltime | log.Lshortfile)
}
example.go:
func test() {
logger.Println("Logged")
}
Questo metodo offre il vantaggio che è possibile utilizzare una singola implementazione logger che può essere configurato da un singolo file.
EDIT: ThomasKappler ha sottolineato che se si utilizza solo un singolo logger globale, è possibile utilizzare logger integrato del pacchetto di log e configurarlo con SetFlags. L'unica differenza è che devi essere più esplicito e importare il pacchetto di log.
Se si utilizza un solo logger globale, è possibile saltare il proprio ed utilizzare le funzioni del pacchetto di log come log.Println ecc. È comunque possibile configurarlo con log.SetFlags(). –
@ThomasKappler Grazie, non lo sapevo. Preferisco usare questo metodo perché posso estendere il logger senza rompere le funzionalità esistenti (in più non devo importare il pacchetto di log ovunque) – liamzebedee
- 1. Come implementare BitSet con Go?
- 2. Libreria condivisa in Go?
- 3. Come implementare Strategy Pattern in Go?
- 4. Come posso implementare un'interfaccia comparabile in go?
- 5. Come implementare la registrazione basata sul livello in golang?
- 6. Implementare la registrazione protetta da thread
- 7. Implementazione della libreria open source: come gestire la registrazione?
- 8. Libreria Go Matrix
- 9. Come implementare la registrazione WebRTC sul server Node.js
- 10. Disattiva la registrazione nella libreria di pianificazione
- 11. Come ricostruire tutta la libreria dopo l'aggiornamento Go 1.4
- 12. Windows Runtime: include una libreria di registrazione?
- 13. Implementare slice_shift_char utilizzando la libreria std
- 14. Registrazione oggetto nella libreria statica
- 15. Impostazione libreria di registrazione C++
- 16. Come implementare la struttura dei dati del grafico in java? È disponibile una libreria esistente?
- 17. Come disabilitare la registrazione per una dipendenza specifica in SBT?
- 18. Come posso creare una semplice app client con la libreria Kubernetes Go?
- 19. modo idiomatico per implementare funzioni generiche in Go
- 20. Prova idiomatica per contraddizione in Isabelle?
- 21. Libreria di codici QR per Go
- 22. Come si elimina una sezione in Go?
- 23. Google Go e SQLite: quale libreria usare e come?
- 24. Come si inverte una matrice in Go?
- 25. come serializzare/deserializzare una mappa in go
- 26. Come effettuare una chiamata SOAP in Go?
- 27. Come ottenere la memoria totale/RAM in GO?
- 28. Come ottenere la funzionalità "virtualhost" in Go?
- 29. Come minimizzare la garbage collection in Go?
- 30. android: come posso implementare tutorial per la prima volta come Go Launcher nella mia app?
C'è un mucchio di librerie di terze parti che fornisce più funzionalità complete di implementazione. Ad esempio, nella libreria standard ho perso un'opzione utile per la formattazione personalizzata e livelli di registro (debug, informazioni, ...) e alla fine ho implementato la mia libreria personale - [go-log] (https://github.com/scale -E/go-log). Dai un'occhiata a questo. –