Maison > développement back-end > Golang > Comment enregistrer les erreurs à l'aide de 'log/slog'

Comment enregistrer les erreurs à l'aide de 'log/slog'

PHPz
Libérer: 2024-02-06 11:24:03
avant
717 Les gens l'ont consulté

Comment enregistrer les erreurs à laide de log/slog

Contenu de la question

La documentation officielle montre comment utiliser le nouveau package de journalisation structurée, mais semble omettre comment enregistrer les erreurs.

https://pkg.go.dev/log/slog

package main

import (
    "fmt"
    "log/slog"
    "os"
)

func demoFunction() error {
    return fmt.Errorf("oh no: %v", 123)
}

func main() {
    logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
    slog.SetDefault(logger)

    slog.Info("info demo", "count", 3)
    slog.Warn("warn demo", slog.String("somekey", "somevalue"))
    slog.Error("error demo", slog.Int("someintkey", 123))
    err := demoFunction()
    if err != nil {
        // Here I'm logging the error as a string, but I presume there is a better way
        // possibly that will log stack trace info as well.
        slog.Error("the demo function got an error.", slog.String("error", err.Error()))
    }
}
Copier après la connexion


Bonne réponse


Quelqu'un a fait une proposition et l'a fermée. Je pense que cela finit par être du sucre syntaxique inutile.

Il semble que quelqu'un a décidé de clôturer le slog.Any call

func ErrAttr(err error) slog.Attr {
    return slog.Any("error", err)
}
Copier après la connexion

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!

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