Nesta lição sobre o pacote Logrus em Golang, estudaremos vários exemplos de como o registro pode ser eficaz em Go e veremos como os registros são importantes na linguagem de programação Go. Vamos começar agora.
Começando com Go
Aqui está a estrutura de diretório que fiz para o meu programa Hello World:
Aqui está o programa que criamos:
pacote principalimportar "fmt"
func main ()
fmt.Printf ("Olá, mundo.\ n ")
Podemos executar o programa acima com o seguinte comando:
vai correr olá.vaiDepois de executar este comando, aqui está a saída que você verá:
Agora isso parece bom. Vamos passar para a nossa agenda principal.
Pacote Logrus em Golang
Para começar a usar o pacote Logrus no programa Go, devemos obter isto. Execute o seguinte comando:
vá buscar -t github.com / Sirupsen / logrusQuando começamos a usar este pacote no IntelliJ, vemos este erro que podemos resolver com um clique:
Depois de obter o pacote, podemos começar a usá-lo. Vamos começar com um programa simples.
Extração Básica com Logrus
Começaremos com um exemplo de registro de nível de INFO muito básico. O registro pode ser feito com mensagens de string e metadados na forma de pares de valores-chave que aparecem iguais.
pacote principalimportar (
log "github.com / Sirupsen / logrus "
)
func main ()
registro.WithFields (log.Campos
"site": "linuxhint.com ",
"incrível": 100,
"ajuda": 200,
).Informações ("Golang pro")
Quando executamos este programa, podemos ver a seguinte saída:
Agora isso é útil e colorido!
Vários níveis de registro
Agora, vamos tentar outro exemplo que mostrará o uso de vários níveis de registro disponíveis em Logrus e em geral. Eles são:
- Informações
- Aviso
- Fatal
- Depurar
- Pânico
Vamos tentar construir um programa e ver como esses níveis de registro diferem quando aparecem em nosso programa:
pacote principalimportar (
log "github.com / Sirupsen / logrus "
)
func main ()
registro.WithFields (log.Campos
"site": "linuxhint.com ",
"incrível": 100,
).Info ("mensagem Golang pro INFO")
registro.WithFields (log.Campos
"site": "linuxhint.com ",
"incrível": 100,
).Warn ("mensagem Golang pro WARN")
registro.WithFields (log.Campos
"site": "linuxhint.com ",
"incrível": 100,
).Fatal ("mensagem Golang pro FATAL")
registro.WithFields (log.Campos
"site": "linuxhint.com ",
"incrível": 100,
).Pânico ("mensagem Golang pro PANIC")
registro.WithFields (log.Campos
"site": "linuxhint.com ",
"incrível": 100,
).Depurar ("mensagem Golang pro DEBUG")
Quando executarmos este programa, veremos a seguinte saída:
Notou algo? As declarações de log após a declaração Fatal nem mesmo aparecem em nossa saída. Isso ocorre porque, assim que um erro fatal é recebido, a execução do programa para em Golang.
Vamos modificar a ordem dessas instruções e verificar se algumas mudanças na saída também são observadas:
Desta vez, até o nível de Log de Pânico reagiu da mesma maneira, mas a saída foi muito diferente e detalhada.
Com o nível de registro do Panic, você garante que informações suficientes sobre a máquina host também sejam impressas na saída do console para que o trabalho seja depurável.
Maneira mais simples de fazer logs
Nas chamadas acima, os registros eram bem detalhados e com metadados também. Existe uma maneira mais fácil de registrar suas mensagens. Vamos tentar isso agora:
pacote principalimportar (
log "github.com / Sirupsen / logrus "
)
func main ()
registro.Debug ("Dados de depuração aqui.")
registro.Info ("Mensagens para informações comuns")
registro.Warn ("Você deve olhar para este aviso!")
registro.Erro ("Algo falhou, mas o programa continuará.")
// Chama os.Saia (1) após o registro
registro.Fatal ("estou saindo.")
// Chama panic () após o registro
registro.Pânico ("Não serei impresso :(")
Aqui está a saída do programa:
O comportamento para registro foi o mesmo, mas desta vez, eles foram fáceis de fazer em apenas uma linha.
Conclusão
Nesta postagem, estudamos exemplos simples, mas úteis sobre como podemos registrar mensagens importantes com diferentes severidades e verbosidade em nossos aplicativos usando o pacote Logrus com Golang.