Maison > développement back-end > Golang > le corps du texte

Bibliothèques de journalisation Golang recommandées et couramment utilisées

WBOY
Libérer: 2024-01-16 10:16:05
original
1359 Les gens l'ont consulté

Bibliothèques de journalisation Golang recommandées et couramment utilisées

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.

  1. log package

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 :

  • Prend en charge la journalisation multi-niveaux
  • Prend en charge les balises de préfixe
  • Prend en charge le formatage de la date et de l'heure
  • Prend en charge la sortie vers différents flux de sortie

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")
}
Copier après la connexion

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.

  1. zap package

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 :

  • Rapide (hautes performances)
  • Type entièrement sécurisé
  • API intuitive
  • Paramétrage automatique du niveau de journalisation
  • Avec en option, riche en syntaxe Et le modèle rapide
  • est extensible
  • prend en charge la distribution

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")))
}
Copier après la connexion

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().

  1. package logrus

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 :

  • Avec des niveaux de journalisation personnalisés
  • Prend en charge le formatage des journaux
  • Peut journaux de sortie au format JSON, texte, Logstash et autres formats
  • Peut facilement étendre les formats de journaux, les méthodes de sortie et s'intégrer à d'autres systèmes de gestion de journaux

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")
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal