Gestionnaire d’erreurs du journal du serveur

Nous nous intéresserons ici à Log Error Handler, le puissant outil mis au point par l’équipe EasyQA pour vous aider à détecter les bugs et à les traiter.

Log Error Handler: qu'est-ce que c'est?

Log Error Handler est un bijou pour révéler et traiter les bugs sur votre serveur.

Gem est un système de gestion de paquets pour le langage de programmation Ruby qui fournit un format standard pour les programmes et les bibliothèques Ruby, des outils conçus pour gérer facilement l’installation de "gems", ainsi que le serveur pour leur distribution.

UNE .gem Le fichier d'extension est une archive commune dans laquelle se trouvent un fichier de spécification et le code source de la bibliothèque dans l'état au moment de la publication.

Le principal les avantages du gestionnaire d'erreurs de journal:

  • Vous obtenez la bibliothèque Ruby on Rails installée et intégrée avec toutes les dépendances nécessaires
  • Il n'a aucune dépendance de plate-forme opérationnelle
  • Vous économisez du temps avec Log Error Handler
  • Vous avez la possibilité de surveiller en permanence les activités de vos serveurs
  • Un message de notification est envoyé automatiquement après la détection du bogue

Actuellement, il existe 3 variantes d’actions pour la révélation de bogues telles que:

  • Pour taper dans le terminal
  • Pour écrire dans un document séparé
  • Pour envoyer une requête HTTP au site Web.

LogErrorHandler

Installation de LogErrorHandler

Vous pouvez installer Log Error Handler de deux manières:

1. Ajoutez cette ligne au fichier Gemfile de votre application:

gemme 'log_error_handler'

Et exécutez ensuite:

 $ bundle 

2. Installez-le vous-même en tant que:

 $ gem install log_error_handler 

Log Error Handler Using

Pour que gem fonctionne, il doit y avoir un flux de données de sortie constant. Voici également deux façons de le faire.

1. Pour diriger un tuyau vers une gemme, par exemple:

 $ rails s | log_error_handler 

Ceci assurera stdout de votre programme à stdin de la gemme. Le moins de cette approche est que vous ne pouvez l’appliquer qu’au lancement de votre programme, avec les journaux que vous souhaitez suivre.

2. Pour indiquer le chemin de votre fichier journal au programme, par exemple:

 $ log_error_handler -l log / development.log 

Pour sortir les journaux de manière correcte, gem a besoin une identification unique de chaque requête adressée au serveur. Dans le cas où la majorité des serveurs sont multithreads et que chaque nouvelle requête est élaborée dans un nouveau flux, la meilleure solution pour cela est l’identificateur de thread.(tid). Pour ajouter cet identifiant unique, par exemple dans la structure Ruby on Rails, vous devez ajouter une seule ligne:

 config.log_tags= [: object_id] 

Après cela, dans chaque ligne des journaux de sortie, tid est généré. Cela ressemble à ceci:

Gestionnaire d'erreur de journal

Vous pouvez utiliser RegExp pour trouver tid gem:/^\[\ré+\]/.

Mais si le mode de sortie de tid diffère, vous pouvez le définir:

image

Par exemple, si tid est placé entre accolades et non au début de la ligne:

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

In Si cette RegExp est écrite dans le terminal, nous avons besoin d’une version double écran.

Gem découvre que la requête a une erreur quand trouve la ligne qui correspond à RegExp de l'erreur:

image

Par exemple, nous devons intercepter non seulement l'erreur 500, mais également 404:

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

Pour examiner les valeurs par défaut, vous devez taper:

image

Le temps dans les réglages par défaut est donné en secondes. Les principales options de temps:

  • Option"--not_modify_timeout " signifie qu'il est temps pour le thread de terminer l'écriture des journaux dans ce fichier si le délai expire et pendant ce temps, le fichier ne sera pas modifié au moins une fois. Le fichier est donc envoyé à la sortie et, s'il y a des erreurs, il sera supprimé.
  • Option"--log_file_tracker_waiting " signifie à quelle fréquence le cycle de vérification des fichiers temporaires dans chaque thread aura lieu.
  • Option"--Mode débogage" fournit la sortie de données en stdout sur la lecture de stdin.

Entrée de données du gestionnaire d'erreurs de journal

Comme il a été mentionné ci-dessus, il existe 3 méthodes de saisie de données:

1. dans stdout est effectuée par défaut si aucun des paramètres de sortie n'était indiqué

2.Dans le fichier, si un paramètre était indiqué

image

Par exemple:

 $ log_error_handler -f error.log 

3. dans le réseau. Pour celui-ci, vous devez indiquer un paramètre:

image

Par exemple:

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

La méthode HTTP post est utilisée par défaut pour l'envoi de données, mais elle peut être facilement remplacée image

Par exemple:

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

Le message est une clé par défaut, sous laquelle l'erreur est situé, paramètre est donc responsable de cette valeur image

Par exemple:

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

Si vous devez envoyer des paramètres supplémentaires avec une erreur, vous pouvez les définir à l'aide d'options telles que:image

Ou:

image

Par exemple:

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

Avant d'envoyer toutes les erreurs sont codées en Base64.

Les rapports de bugs et les demandes d'extraction sont les bienvenus sur GitHub à l'adresse https://github.com/thinkmobiles/log_error_handler.

Donc, vous avez plus de connaissances sur cet outil. Pourquoi ne pas essayer de l'utiliser? Hope, Log Error Handler vous aidera dans votre processus de développement logiciel et de test. Ce serait bien de savoir ce que vous pensez de notre outil. Vous pouvez laisser vos remarques et vos souhaits non seulement sur GitHub, mais aussi ci-dessous dans les commentaires.