Manipulador de Erros de Log do Servidor

Aqui vamos considerar o Log Error Handler, a ferramenta poderosa, que foi desenvolvida pela equipe do EasyQA, para ajudá-lo a detectar e trabalhar com bugs.

Log Error Handler: o que é

Log Error Handler é uma jóia para revelar e processar erros no seu servidor.

O Gem é um sistema de gerenciamento de pacotes para a linguagem de programação Ruby que fornece um formato padrão para programas e bibliotecas Ruby, ferramentas projetadas para gerenciar facilmente a instalação de "gemas" e o servidor para sua distribuição.

A .gema O arquivo de extensão é um arquivo comum, dentro do qual há um arquivo de especificação e o código fonte da biblioteca no estado no momento do lançamento.

O principal  vantagens  do manipulador de erros de log:

  • Você instala e integra a biblioteca Ruby on Rails com todas as dependências necessárias
  • Não tem dependências de plataforma operacional
  • Você economiza seu tempo com o Log Error Handler
  • Você tem a capacidade de realizar monitoramento permanente das atividades de seus servidores
  • Uma mensagem de notificação é enviada automaticamente após a detecção do bug

Atualmente, existem 3 variantes de ações para revelação de erros, como:

  • Para digitar terminal
  • Para anotar em um documento separado
  • Para enviar solicitação HTTP para o site.

LogErrorHandler

Instalação do LogErrorHandler

Você pode instalar o Log Error Handler das duas maneiras:

1. Adicione esta linha ao Gemfile da sua aplicação:

gema 'log_error_handler'

E então execute:

 $ bundle 

2. Instale você mesmo como:

 $ gem install log_error_handler 

Log Error Handler Using

Para fazer gem funcionar, deve haver um fluxo de dados de saída constante. Aqui também estão duas maneiras de fazer isso.

1. Para conduzir pipe a gem, por exemplo:

 $ rails s | log_error_handler 

Isso garantirá stdout  do seu programa para  stdin  da gema. A desvantagem dessa abordagem é que você pode aplicá-la apenas durante o lançamento do seu programa, cujos logs deseja rastrear.

2. Para mostrar o caminho para o seu arquivo de log para programar, por exemplo:

 $ log_error_handler -l log / development.log 

Para gerar logs de maneira correta, o gem precisa de uma identificação única de cada solicitação para o servidor. Caso a maioria dos servidores seja multithread e cada novo pedido seja elaborado em um novo fluxo, então o melhor exemplo para isso será identificador de thread (tid) . Para adicionar este identificador único, por exemplo, no framework Ruby on Rails você precisa adicionar apenas uma linha:

 config.log_tags= [: object_id]

Depois disso, em cada linha de logs de saída, o tid é gerado. Se parece com isso:

Log Error Handler
Você pode usar o RegExp para encontrar o gem tid: /^\ [\ d+\]/.
Mas se a maneira de saída tid difere você pode configurá-lo:

imagem
Por exemplo, se o tid estiver localizado entre chaves e não no início da linha:

 $ log_error_handler -t / \\ {\\ d + \\} / 

Caso este RegExp seja escrito no terminal, precisamos de uma versão de tela dupla.

Gem descobre que o pedido tem um erro quando encontra a linha que corresponde ao RegExp do erro:

imagem
Por exemplo, precisamos capturar não apenas o erro 500, mas também o erro 404:

 $ log_error_handler -e "/(500)|(404).*error/i"


Para procurar por valores por padrão, você precisa digitar:

imagem
O tempo nas configurações por padrão é dado em segundos.

As principais opções de horário:

  • Opção "--not_modify_timeout "  significa tempo para o encadeamento concluir a gravação de registros nesse arquivo se o tempo limite expirar e, durante esse tempo, o arquivo não será alterado pelo menos uma vez, portanto, o arquivo será enviado para a saída e, se houver alguns erros, ele será excluído.
  • Opção "--log_file_tracker_waiting "  Significa quantas vezes o ciclo de verificação de arquivos temporários em cada segmento ocorrerá.
  • Opção "--modo de depuração"  fornece a saída de dados em stdout sobre leitura de stdin.

Entrada de dados do manipulador de erros de log

Como foi mencionado acima, existem 3 formas de entrada de dados:

1. Em stdout  é executado por padrão, se nenhum dos parâmetros de saída for indicado

2. Em o arquivo , se um parâmetro foi indicado

imagem
Por exemplo:

 $ log_error_handler -f error.log 

3. na rede . Para este, você precisa indicar um parâmetro:

imagem
Por exemplo:

 $ log_error_handler -u https://app.geteasyqa.com/projects/upload_crashes

A postagem do método HTTP é usada por padrão para o envio de dados, mas pode ser facilmente substituída imagem
Por exemplo:
 $ log_error_handler -u https://app.geteasyqa.com/projects/upload_crashes -m put 

A mensagem é uma chave por padrão, sob qual erro está localizado, então o parâmetro é responsável por este valor imagem
Por exemplo:

 $ log_error_handler -u https://app.geteasyqa.com/projects/upload_crashes -m put -k error 

Se você precisar enviar alguns parâmetros adicionais com um erro, poderá defini-los por meio de opções, como: imagem
Ou:

imagem
Por exemplo:

 $ log_error_handler -u https://app.geteasyqa.com/projects/upload_crashes -m put -k erro -a "{\" token \ ": \" uQF7ZYtHh9VDMXBaJojq \ " }"

Antes de enviar, todos os erros são codificados em Base64.

Relatórios de bugs e solicitações de pull são bem-vindos no GitHub em https://github.com/thinkmobiles/log_error_handler .

Então, você tem mais conhecimento sobre essa ferramenta. Por que não tentar usá-lo? Espero, Log Error Handler irá ajudá-lo em seu processo de desenvolvimento e teste de software. Seria legal saber o que você acha da nossa ferramenta. Você pode deixar suas observações e desejos não apenas no GitHub, mas também nos comentários abaixo.