Golang Log para arquivo

Golang Log para arquivo
O registro é uma das ferramentas mais importantes para um desenvolvedor. Ele permite monitorar um aplicativo de bugs, problemas de desempenho, rastreamento de uso e muito mais. Portanto, aprender a criar logs para o seu aplicativo é altamente benéfico.

Usando este guia, apresentaremos o pacote de log na biblioteca padrão e usá -lo para criar logs personalizados.

Pacote de log de Golang

A biblioteca padrão do Go é enorme, acredite, ele mantém uma coleção de ferramentas, serviços públicos e pacotes para aspectos quase importantes de um programador.

Um desses pacote é o pacote de log. Ele vem equipado com tudo o que você precisa para implementar recursos de registro para seus programas Go. Isso inclui vários níveis de registro, como depuração, aviso, erro, informações, etc.

O método mais básico no pacote de log é o método println. Como o método println do pacote FMT, ele permite criar uma mensagem de log básica.

Um exemplo de código -fonte é como mostrado abaixo:

Pacote principal
importar "log"
func main ()
registro.Println ("Olá, lá!")

Se executarmos o código acima, devemos ver e sair como mostrado:

2022/01/27 21:29:35 Olá, lá!

Observe algo diferente na mensagem impressa no console?

O método println do pacote de log inclui um registro de data e hora de quando a mensagem de log foi criada. Se você estiver ingerindo os logs para um aplicativo de registro, ter o registro de data e hora é extremamente benéfico para filtrar toras.

Lembre -se de que o pacote de log imprimirá a mensagem para o Stderr Stream. Você também pode configurá -lo para escrever em um arquivo, pois abordaremos na próxima seção.

Golang Log para arquivo

Para fazer login em um arquivo, você pode usar o pacote do sistema operacional para criar um arquivo de log se ele não existir ou abrir e gravar em um arquivo existente. Fazer isso definirá a saída do pacote de log para o arquivo de saída especificado.

Lembre -se de que o pacote de logs também suporta outro destino de saída que suporta IO.Interface do escritor.

Um código de exemplo para fazer login em um arquivo é como mostrado no snippet abaixo:

Pacote principal
importação (
"registro"
"OS"
"tempo"
)
func main ()
// Abra o arquivo e crie se inexistente
Arquivo, Err: = OS.OpenFile ("Custom.log ", OS.O_APPEND | OS.O_CREATE | OS.O_wronly, 0644)
se err != nil
registro.Fatal (ERR)

Arquivo de adiamento.Fechar()
Logger: = log.Novo (arquivo, "log personalizado", log.Lstdflags)
Logger.Println ("Eu sou uma nova mensagem de log")
tempo.Sono (5 * tempo.Segundo)
Logger.Println ("Um novo log, 5 segundos depois")

No exemplo acima, começamos abrindo um arquivo para usar como saída de log. Incluímos as bandeiras para escrever no arquivo e criá -lo se ele não existir.

Verificamos então se há um erro ao ler/escrever no arquivo. Se ocorrer um erro, registramos o erro usando o log.Fatal.

O registro.O método FATAL () é semelhante ao método print (), mas inclui uma chamada para OS.Saída () com um código de status de 1.

O próximo passo é fechar o arquivo. Definimos a função definida para adiar, permitindo que a função seja executada após a função principal ser feita.

A próxima etapa é criar um novo registrador que grava no arquivo. O registro.A função de logger leva 3 argumentos principais:

  1. A saída de log, neste caso, é o arquivo de log.
  2. O prefixo que é anexado ao início de cada entrada no arquivo de log.
  3. Finalmente, é o log constante após o prefixo do texto para cada linha de log.

A seguir, são apoiados constantes de log:

  1. Ldate
  2. Ltime
  3. Lmicrossegundos
  4. LLONGFILE
  5. LSHORTFILE
  6. Lutc
  7. Lmsgprefix
  8. Lstdflags

Considere o recurso de documentação abaixo para saber mais.

https: // pkg.ir.Dev/log#pkg-constants

No nosso exemplo acima, também definimos um tempo de sono para 5 segundos. Se executarmos o código acima, devemos obter uma saída como mostrado abaixo:

$ CAT Custom.registro
Log2022/01/27 21:40:25 Eu sou uma nova mensagem de log
Log2022/01/27 21:40:30 Um novo registro, 5 segundos depois

O registro de data e hora entre a primeira entrada do log e a segunda entrada de log é de 5 segundos de intervalo. Isso ocorre devido à função do sono no código acima.

Conclusão

Esta posta. Usando este guia, você pode começar usando o pacote de log Go e criar mecanismos avançados de registro para seus aplicativos.

Obrigado pela leitura!