2010-11-26 29 views
2

Mon application Web Grails enregistre actuellement beaucoup d'informations de débogage dans un fichier, pour presque toutes les demandes. D'après votre expérience, devrais-je l'éteindre avant de passer en production (ce qui rendra plus difficile le suivi des bogues bien sûr), ou est-ce qu'il n'y a presque aucun effet sur les performances de mon application, même quand il y a beaucoup d'utilisateurs? le même temps?Est-ce qu'une grande partie de la journalisation du débogage ralentit mon application web (grails)?

Répondre

5

La journalisation ralentit définitivement les choses. L'écriture dans des fichiers est particulièrement lente. Même le processus de création des chaînes à enregistrer aura un effet négatif sur les performances. Je vous conseille vivement de désactiver cette connexion. Si vous avez des problèmes avec votre application, il vaut mieux déboguer dans un environnement de développement que dans la production.

4

Je suis d'accord avec @tzhx. Je vais ajouter seulement 2 points:

1) Vous voulez probablement diviser vos déclarations de journal en fonction de leur importance, en utilisant log.info, .warn, .error, puis dans votre configuration faire des ajustements en production que vous utilisez le niveau approprié pour varier les paquets. Vous aurez probablement besoin d'un niveau de base de journalisation, même en prod.

2) Je ne vous conseille pas connecter sql prod. Si vous avez un problème, consignez sql dans dev ou dans votre environnement qa pour déterminer le problème.

1

D'accord avec les deux réponses précédentes. En règle générale, je définis le niveau de journalisation sur WARN ou ERROR en production. Si vous avez besoin d'ajuster les niveaux de journalisation lors de l'exécution, vous pouvez utiliser le plugin http://www.grails.org/plugin/runtime-logging. Cela vous permet d'augmenter la journalisation pour repérer les problèmes survenant uniquement en production. Après l'analyse des erreurs, vous pouvez rétablir le niveau de journalisation à son niveau normal.

Si votre cas d'utilisation nécessite la notation étendue (par exemple pour des raisons de piste de vérification, etc.), vous devriez avoir des disques séparés pour l'enregistrement ou se connecter à un certain appareil distant dédié.

1

Comme dit précédemment, il peut affecter les performances mal si vous vous connectez beaucoup d'informations à votre dossier. Je vous recommande de faire ce qui suit:

  1. La plupart des informations de débogage doivent être renfermés dans la déclaration comme if (log.debugEnabled) log.debug "This is a debug log line". Notez l'utilisation de if (log.debugEnabled) qui est important si vous ne voulez pas que vos messages de débogage en cours d'évaluation, même dans la production
  2. Installer le plugin app-info. Ce plugin vous permet de modifier les niveaux d'exploitation (de INFO à DEBUG par exemple) lors de l'exécution et à la différence plug-in d'exécution diagraphie, il vous donne d'autres informations utiles pour le débogage (propriétés de configuration, consuption mémoire ...)
0

Exploitation forestière par lui-même porte un coût de performance.

Mais savez-vous ce qui peut vraiment ruiner votre peformance d'application? Consignation de console