web-dev-qa-db-fra.com

Comment implémenter la journalisation par niveau dans golang?

Existe-t-il un bon wrapper disponible pour la journalisation par niveau dans golang? Si non, comment dois-je procéder pour en implémenter un moi-même?

Ce que je veux est assez simple. Je veux quelques fonctions, par exemple.

log.Error()
log.Info()

etc qui affiche leurs sorties sur stdout et les enregistre dans un fichier journal (basé sur le niveau attribué au programme en tant qu'argument en ligne de commande) . Comment implémenter ce wrapper?

34
pymd

Quelques suggestions supplémentaires, maintenant que les réponses existantes sont assez anciennes:

36
Bryan

Je pense que seelog correspond à vos exigences , et il semble être assez populaire car il apparaît souvent dans les discussions de journal. Je ne l'ai jamais utilisé sérieusement, donc je ne peux pas en dire plus.

4
mna

Jetez un coup d'oeil à http://cgl.tideland.biz et là au paquet "applog". Ça marche comme ça. 

PS: L'ensemble du CGL est actuellement retravaillé et sera bientôt publié avec de nouvelles fonctionnalités, mais sous un nom différent. ;)

3
Mue

Uber-go/Zap : Connexion rapide, structurée et nivelée Go

3
Ankit Deshpande

stdlog correspond exactement à vos besoins:

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

https://github.com/hashicorp/logutils J'ai trouvé cela très facile à utiliser et vous n'avez même pas besoin de changer les appels de méthode en log.Printf de la bibliothèque std. 

1
Jorge Marey

J'ai ajouté la prise en charge du niveau de journalisation au package de journalisation Go intégré. Vous pouvez trouver mon code ici:

https://github.com/gologme/log

Outre la prise en charge d'Info, Warn et Debug, les utilisateurs peuvent également définir leurs propres niveaux de journalisation arbitraires. Les niveaux de journalisation sont activés et désactivés individuellement. Cela signifie que vous pouvez activer les journaux de débogage sans tout obtenir le reste. 

1
jordan2175