En esta lección sobre el paquete Logrus en Golang, estudiaremos varios ejemplos sobre la efectividad del registro en Go y veremos qué tan importantes son los registros en el lenguaje de programación Go. Empezaremos ahora.
Comenzando con Go
Aquí está la estructura de directorios que hice para mi programa Hello World:
Aquí está el programa que creamos:
paquete principalimportar "fmt"
func main ()
fmt.Printf ("Hola, mundo.\norte")
Podemos ejecutar el programa anterior con el siguiente comando:
ve a correr hola.irUna vez que ejecutemos este comando, aquí está el resultado que verá:
Ahora que se ve bien. Pasemos a nuestra agenda principal.
Paquete Logrus en Golang
Para comenzar a usar el paquete Logrus en el programa Go, debemos obtener eso. Ejecute el siguiente comando:
ir a buscar -t github.com / Sirupsen / logrusCuando comenzamos a usar este paquete en IntelliJ, vemos este error que podemos resolver con un solo clic:
Una vez que obtenga el paquete, podemos comenzar a usarlo. Comencemos con un programa simple.
Registro básico con Logrus
Comenzaremos con un ejemplo de registro de nivel INFO muy básico. El registro se puede realizar con mensajes de cadena y metadatos en forma de pares clave-valor que parecen iguales.
paquete principalimportar
log "github.com / Sirupsen / logrus "
)
func main ()
Iniciar sesión.WithFields (registro.Campos
"sitio web": "linuxhint.com ",
"impresionante": 100,
"ayuda": 200,
).Información ("Golang pro")
Cuando ejecutamos este programa, podemos ver el siguiente resultado:
Ahora que es útil y colorido!
Varios niveles de registro
Ahora, probaremos otro ejemplo que mostrará el uso de varios niveles de registro disponibles en Logrus y en general. Ellos son:
- Información
- Advertencia
- Fatal
- Depurar
- Pánico
Intentemos construir un programa y veamos cómo estos niveles de registro difieren cuando aparecen en nuestro programa:
paquete principalimportar
log "github.com / Sirupsen / logrus "
)
func main ()
Iniciar sesión.WithFields (registro.Campos
"sitio web": "linuxhint.com ",
"impresionante": 100,
).Información ("mensaje INFO de Golang pro")
Iniciar sesión.WithFields (registro.Campos
"sitio web": "linuxhint.com ",
"impresionante": 100,
).Advertir ("mensaje de advertencia de Golang pro")
Iniciar sesión.WithFields (registro.Campos
"sitio web": "linuxhint.com ",
"impresionante": 100,
).Fatal ("mensaje de Golang pro FATAL")
Iniciar sesión.WithFields (registro.Campos
"sitio web": "linuxhint.com ",
"impresionante": 100,
).Pánico ("Mensaje de Golang pro PANIC")
Iniciar sesión.WithFields (registro.Campos
"sitio web": "linuxhint.com ",
"impresionante": 100,
).Debug ("Mensaje de DEBUG de Golang pro")
Cuando ejecutemos este programa, veremos el siguiente resultado:
Noté algo? Las declaraciones de registro después de la declaración fatal ni siquiera aparecen en nuestra salida. Esto se debe a que tan pronto como se recibe un error fatal, la ejecución del programa se detiene en Golang.
Modifiquemos el orden de estas declaraciones y verifiquemos si también se observan algunos cambios en la salida:
Esta vez, incluso el nivel de Panic Log reaccionó de la misma manera, pero la salida fue muy diferente y detallada.
Con el nivel de registro de pánico, se asegura de que también se imprima suficiente información sobre la máquina host en la salida en la consola para que el trabajo sea depurable.
Una forma más sencilla de hacer registros
En las llamadas anteriores, los registros eran bastante detallados y también tenían metadatos. Existe una forma más sencilla de registrar sus mensajes. Probemos esto ahora:
paquete principalimportar
log "github.com / Sirupsen / logrus "
)
func main ()
Iniciar sesión.Debug ("Depurando datos aquí.")
Iniciar sesión.Información ("Mensajes para información común")
Iniciar sesión.Warn ("Deberías mirar esta advertencia!")
Iniciar sesión.Error ("Algo falló pero el programa continuará.")
// Llama al sistema operativo.Salir (1) después de iniciar sesión
Iniciar sesión.Fatal ("me voy.")
// Llama a panic () después del registro
Iniciar sesión.Pánico ("No me imprimirán :(")
Aquí está la salida del programa:
El comportamiento para el registro fue el mismo, pero esta vez, fueron fáciles de hacer en una sola línea.
Conclusión
En esta publicación, estudiamos ejemplos simples pero útiles sobre cómo podemos registrar mensajes importantes con diferente gravedad y verbosidad en nuestras aplicaciones usando el paquete Logrus con Golang.