Golang est un langage de programmation très populaire qui est souvent utilisé pour développer des applications côté serveur hautes performances et haute fiabilité. Dans le développement réel, la journalisation est une fonction très importante, utilisée pour enregistrer diverses informations d'état, des informations sur les exceptions, des journaux d'erreurs, etc. lorsque le programme est en cours d'exécution. À l’aide des journaux, vous pouvez facilement déboguer et résoudre les problèmes. Cet article présentera les bibliothèques de journalisation couramment utilisées dans Golang et donnera des exemples de code spécifiques.
log package est une bibliothèque de journalisation fournie par le langage Golang lui-même. Il fournit une fonctionnalité de journalisation standard et la journalisation peut être facilement implémentée via une simple API. Il présente les fonctionnalités suivantes :
Voici un exemple qui montre comment utiliser le package de journaux pour logging Logging :
package main import ( "log" "os" ) func main() { // 日志记录到文件 f, err := os.OpenFile("test.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { log.Fatal(err) } defer f.Close() log.SetPrefix("[TEST]") log.SetOutput(f) log.Println("Test log message") }
Le code ci-dessus montre comment se connecter à un fichier nommé test.log et ajouter une balise de préfixe "[TEST]". Appelez simplement le journal pour afficher les informations pertinentes.
zap est une bibliothèque de journalisation structurée avec d'excellentes performances et une facilité d'utilisation. Il offre des capacités efficaces de journalisation et d'interrogation des journaux et possède les fonctionnalités suivantes :
Voici un exemple qui montre comment utiliser la bibliothèque zap pour la journalisation :
package main import ( "go.uber.org/zap" ) func main() { logger, _ := zap.NewProduction() logger.Info("This is an info message", zap.String("key1", "value1"), zap.Int("key2", 100)) logger.Error("This is an error message", zap.Error(errors.New("error"))) }
Le code ci-dessus montre comment utiliser la bibliothèque zap pour la journalisation. Créez d’abord une nouvelle instance Logger en appelant la fonction zap.NewProduction(), puis utilisez les fonctions logger.Info() et logger.Error() pour la journalisation. Ils peuvent tous accepter un nombre variable de paramètres clé-valeur, qui peuvent être définis via des fonctions telles que zap.String().
logrus est une bibliothèque de journalisation structurée très flexible qui fournit un style d'appel de fonction similaire au package de journalisation en Python et possède les fonctionnalités suivantes :
Ce qui suit est un exemple pour montrer comment utiliser logrus Logging :
package main import ( "github.com/sirupsen/logrus" ) func main() { log := logrus.New() log.SetLevel(logrus.DebugLevel) log.SetFormatter(&logrus.JSONFormatter{}) log.WithFields(logrus.Fields{ "animal": "walrus", "size": 10, "weight": 100, }).Info("A group of walrus emerges from the ocean") }
Le code ci-dessus montre comment utiliser logrus pour la journalisation, avec le niveau de journalisation défini sur Debug et le format de sortie défini sur JSON. Il est recommandé de définir une instance globale logrus.Logger dans le code et d'effectuer la journalisation via la fonction logrus.WithFields().
Résumé
Ce qui précède présente les bibliothèques de journaux couramment utilisées dans Golang, notamment le package de journaux, le package zap et le package logrus. Chacune de ces bibliothèques présente certaines caractéristiques et avantages, et le choix spécifique doit être déterminé en fonction des besoins du projet réel. Dans le développement réel, la journalisation est une fonction essentielle. Elle peut facilement enregistrer les informations d'état du programme et nous aider à déboguer et dépanner.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!