Golang Journal dans le fichier

Golang Journal dans le fichier
La journalisation est l'un des outils les plus importants pour un développeur. Il permet de surveiller une application pour les bogues, les problèmes de performances, le suivi de l'utilisation et bien plus encore. Par conséquent, apprendre à créer des journaux pour votre application est très bénéfique.

En utilisant ce guide, nous vous présenterons le package de journal dans la bibliothèque Standard Go et l'utiliserons pour créer des journaux personnalisés.

Package de journal Golang

La bibliothèque GO Standard est massive, croyez-moi, elle détient une collection d'outils, de services publics et de packages pour des aspects presque très importants d'un programmeur.

L'un de ces packages est le package de journal. Il est équipé de tout ce dont vous avez besoin pour implémenter les fonctionnalités de journalisation pour vos programmes GO. Cela comprend divers niveaux de journalisation tels que le débogage, l'avertissement, l'erreur, les informations, etc.

La méthode la plus élémentaire dans le package de journal est la méthode println. Comme la méthode println du package FMT, il vous permet de créer un message de journal de base.

Un exemple de code source est le cas ci-dessous:

package principal
Importer "journal"
func main ()
enregistrer.Println ("Bonjour, là!")

Si nous exécutons le code ci-dessus, nous devrions voir et sortir comme indiqué:

2022/01/27 21:29:35 Bonjour, là!

Remarquez quelque chose de différent dans le message imprimé sur la console?

La méthode println du package de journal comprend un horodatage de la création du message du journal. Si vous ingérez les journaux pour une application de journalisation, avoir l'horodatage est extrêmement bénéfique pour le filtrage des journaux.

Gardez à l'esprit que le package de journal imprimera le message au flux Stderr. Vous pouvez également le configurer pour écrire dans un fichier, car nous couvrirons dans la section suivante.

Golang Journal dans le fichier

Pour vous connecter à un fichier, vous pouvez utiliser le package OS pour créer un fichier journal s'il n'existe pas ou ouvrir et écrire dans un fichier existant. Cela définira la sortie du package de journal sur le fichier de sortie spécifié.

Gardez à l'esprit que le package de journal prend également en charge une autre destination de sortie qui prend en charge IO.Interface d'écrivain.

Un exemple de code pour se connecter à un fichier est comme indiqué dans l'extrait ci-dessous:

package principal
importer (
"enregistrer"
"OS"
"temps"
)
func main ()
// ouvrir le fichier et créer si inexistant
fichier, err: = os.OpenFile ("Custom.journal ", OS.O_APPEND | OS.O_CREATE | OS.O_wronly, 0644)
Si err != nil
enregistrer.Fatal (euh)

fichier de report.Fermer()
Enregistreur: = journal.Nouveau (fichier, "journal personnalisé", journal.Lstdflags)
bûcheron.Println ("Je suis un nouveau message de journal")
temps.Sommeil (5 * fois.Deuxième)
bûcheron.Println ("un nouveau journal, 5 secondes plus tard")

Dans l'exemple ci-dessus, nous commençons par ouvrir un fichier à utiliser comme sortie du journal. Nous incluons les drapeaux pour écrire dans le fichier et le créer s'il n'existe pas.

Nous vérifions ensuite s'il y a une erreur lors de la lecture / de l'écriture dans le fichier. Si une erreur se produit, nous enregistrons l'erreur à l'aide du journal.Fatal.

Le journal.La méthode fatal () est similaire à la méthode print () mais comprend un appel à OS.Exit () avec un code d'état de 1.

L'étape suivante consiste à fermer le fichier. Nous définissons la fonction de clôture de set pour différer, permettant à la fonction d'exécuter une fois la fonction principale terminée.

L'étape suivante consiste à créer un nouvel enregistreur qui écrit dans le fichier. Le journal.La fonction d'enregistrement prend 3 arguments principaux:

  1. La sortie du journal, dans ce cas, est le fichier journal.
  2. Le préfixe qui est annexé au début de chaque entrée dans le fichier journal.
  3. Enfin, est la constante de journal après le préfixe de texte pour chaque ligne de journal.

Les constantes de journal suivantes sont prises en charge:

  1. Ldate
  2. Temps
  3. Lmicrosecondes
  4. Llongfile
  5. Lshortfile
  6. LUTC
  7. Lmsgprefix
  8. Lstdflags

Considérez la ressource de documentation ci-dessous pour en savoir plus.

https: // pkg.aller.dev / journal # pkg-constants

Dans notre exemple ci-dessus, nous avons également établi un temps de sommeil pendant 5 secondes. Si nous exécutons le code ci-dessus, nous devons obtenir une sortie comme indiqué ci-dessous:

$ Cat Custom.enregistrer
Log2022 / 01/27 personnalisé 21:40:25 Je suis un nouveau message de journal
Log2022 / 01/27 personnalisé 21:40:30 Un nouveau journal, 5 secondes plus tard

L'horodatage entre la première entrée de journal et la deuxième entrée de journal est de 5 secondes d'intervalle. C'est à cause de la fonction de sommeil dans le code ci-dessus.

Conclusion

Cet article explore le concept de création et de construction de bûcherons pour votre application dans Go. En utilisant ce guide, vous pouvez commencer à utiliser le package de journal Go et à créer des mécanismes de journalisation avancés pour vos applications.

Merci d'avoir lu!