7
votes

Désactiver la journalisation du client HTTP Apache?

J'écris une application dans laquelle je télécharge un fichier à l'aide de protocole HTTP sur un serveur. Tout fonctionne bien et je suis capable de télécharger le fichier, j'ai utilisé le jar client Apache HTTP pour y accomplir. Dans la demande, j'ai utilisé le cadre de journalisation de log4J qui a été défini sur le niveau de débogage, par défaut Apache HTTP Client a également ramassé le même cadre de journalisation avec le même niveau de journalisation et produit des tonnes de journaux. Quelqu'un peut-il me guider comment puis-je puisse désactiver la journalisation du client HTTP Apache?

Je configure log4J à l'aide d'un nom de fichier XML log4j.xml.


0 commentaires

3 Réponses :


7
votes

supposer que vous utilisez httpclient 4 , n'ajoute pas quelque chose comme Ceci à votre travail log4j.xml: xxx

i Vous n'avez pas de log4j.xml Créez un et sur votre point de classe.

Si vous 'RE NU UTILISANT httpClient 3 alors vous devrez utiliser quelque chose comme: xxx

dans ces exemples, j'ai défini le niveau sur Avertissez , vous pourriez choisir d'utiliser aucun , mais un minimum d'erreur serait raisonnable.


0 commentaires

0
votes

Vous pouvez régler le niveau de journalisation par package. Voici l'exemple de http://wiki.apache.org/logging-log4j/log4jxmlFormat :

<logger name="com.eatmutton.muttonsite.torque" additivity="false">
   <level value="info" />
   <appender-ref ref="local-torque" />
</logger>


0 commentaires

2
votes

Les réponses données sont de bons exemples de personnes répondant aux questions qu'ils ne comprennent même pas. Ils répètent simplement ce qu'ils ont entendu ou lu dans des documentations médiocres telles que celle du client HTTP Apache. Quelque chose comme: xxx

est ce qui devrait être fait si la documentation du client HTTP Apache a eu raison. Dans ce cas, l'affiche de cette question aurait résolu le problème lui-même. Donner de telles réponses médiocres est une sorte d'insulte.

Le problème est que, bien que la documentation indique:

Chaque classe a son propre journal nommé en fonction du nom pleinement qualifié de la classe. Par exemple, la classe httpclient a un journal nommé org.apache.comment.httpclient.httpClient. Puisque toutes les classes suivent cette convention, il est possible de configurer la journalisation du contexte pour Toutes les classes utilisant le journal unique nommé org.apache.commons.httpClient.

Ce n'est tout simplement pas vrai.

mieux que de donner à la réponse montre comment le trouver vous-même. Pour trouver la solution, vous devez d'abord activer l'emplacement dans le journal de voir où se trouve le journal. Ensuite, les journaux afficheront une ligne comme: xxx

ceci indique que la journalisation se produit dans la classe Wire.java, ligne 84. Vous pouvez ensuite ouvrir les sources de votre IDE préféré et Et vous verrez ce qui suit: xxx

La variable de journal contient l'enregistreur. Allez à l'endroit où ces variables reçoivent sa valeur: xxx

Tout ce que vous avez à faire est de mettre un point de rupture à la ligne 56 et d'exécuter votre application dans le débogueur. Lorsqu'il s'arrête à la ligne 56, lisez la valeur du journal. Comme il s'agit d'un objet de type journal, ouvrez-le à sa propriété "Nom". Vous verrez le nom "httpclient". Évaluation, la documentation Apache est fausse.

Vous pouvez désactiver cet enregistreur avec: xxx

La conclusion est la suivante:

  • Si possible, apprenez à trouver une réponse à votre propre question au lieu de demander.

  • Ne croyez pas ce que tout le monde dit. Nommer les enregistreurs par le nom de classe complet est une convention. Comme toutes les conventions, personne n'est obligé de le suivre. Une Apache ne pas.

  • Ne répondez pas à la question lorsque vous ne connaissez pas la réponse. Ce n'est que du bruit.


0 commentaires