log.Fatal essaie de terminer le programme avec l'état de sortie 1 après la sortie du message

Conclusion: lisez correctement la documentation lors de l'utilisation de l'API (´ ・ ω ・ `)

Les langages go log.Fatal, log.Fatalf et log.Fatalln sortent os.Exit (1) après la sortie du message et essaient de terminer le processus. Par exemple, si vous disposez du programme suivant:

main.go


package main

import (
	"fmt"
	"log"
)

func main() {
	fmt.Println("BEFORE")

	log.Fatalln("FATAL")

	fmt.Println("AFTER")
}

Si vous construisez et exécutez ceci, vous verrez que le programme s'est terminé avec l'état de sortie 1 après avoir sorti FATAL ( AFTER n'a pas été sorti).

$ go build .
$
$ ./fataltest
BEFORE
2020/11/15 21:02:55 FATAL
$
$ echo $?
1

Certains autres langages de programmation et bibliothèques ont FATAL comme niveau de journalisation. En bref, si vous utilisez une fonction du type log.Fatal en pensant" Est-ce celle qui produit le journal de niveau FATAL! ", Cela peut provoquer un bug inattendu - ou plutôt, je l'ai fait. Réflexion)

référence

Recommended Posts

log.Fatal essaie de terminer le programme avec l'état de sortie 1 après la sortie du message
Comment démarrer la première projection
Comment surveiller l'état d'exécution de sqlldr avec la commande pv