Désactiver la journalisation de Client HTTP apache?
Je suis en train d'écrire une application dans laquelle je suis le téléchargement d'un fichier à l'aide du protocole HTTP à un serveur. Tout fonctionne bien et je suis en mesure de télécharger le fichier, j'ai utilisé du client HTTP Apache pot ensemble pour accomplir cette tâche. Dans l'application, j'ai utilisé de journalisation log4j cadre qui a été mis à niveau de DÉBOGAGE, par défaut d'Apache HTTP Client a également repris la même structure de journalisation avec le même niveau d'enregistrement et il est en train de produire des tonnes de journaux. Quelqu'un peut-il me guider comment je puis-je désactiver la journalisation de client Http apache?
Je suis de la configuration de log4j avec l'aide d'un nom de fichier XML log4j.xml.
OriginalL'auteur user381878 | 2011-03-02
Vous devez vous connecter pour publier un commentaire.
En supposant que vous utilisez httpclient 4, n'est-ce pas d'ajouter quelque chose comme cette à votre log4j.xml travail:
Je vous n'avez pas de log4j.xml créez-en un à votre classpath.
Si vous utilisez httpclient 3, alors vous aurez à utiliser quelque chose comme:
Dans ces exemples, que j'ai de définir le niveau de avertir, vous pourriez choisi d'utiliser aucun, mais un minimum de erreur serait judicieux.
OriginalL'auteur Joel
Les réponses données sont de bons exemples de personnes répondant à des questions qu'ils ne comprennent pas. Ils ont juste répéter ce qu'ils ont entendu ou lu dans les pauvres documentations comme celui de client HTTP Apache. Quelque chose comme:
est ce qui doit être fait si la documentation d'Apache HTTP client a droit. Dans de tels cas, l'affiche de cette question aurait résolu le problème lui-même. Donner de mauvaises réponses est une sorte d'insulte.
Le problème est que, bien que la documentation dit:
il n'est tout simplement pas vrai.
Mieux que de donner la réponse c'est de montrer comment le trouver vous-même. Pour trouver la solution, vous devez d'abord activer la localisation dans le journal pour voir où le journal se passe. Ensuite, les journaux affiche une ligne comme:
Cela montre que l'enregistrement se passe dans la classe Wire.java, la ligne 84. Vous pouvez ensuite ouvrir les sources dans votre IDE favori et vous permettra de voir les suivants:
Le journal variable contient l'enregistreur. Allez à l'endroit où cette variable reçoit sa valeur:
Tout ce que vous avez à faire maintenant est de mettre un point d'arrêt à la ligne 56 et exécuter votre application dans le débogueur. Quand il s'arrête à la ligne 56, lire le journal en valeur. Comme c'est un objet de type Journal, ouvrir un oeil à sa propriété "nom". Vous verrez le nom "httpclient". Obvioulsly, la documentation d'Apache est mauvais.
Maintenant, vous pouvez désactiver cet enregistreur avec:
La conclusion est:
Lorsque cela est possible, apprendre à trouver la réponse à votre propre question au lieu de demander.
Ne croyez pas ce que tout le monde dit. Nommer les enregistreurs de par le nom de classe entièrement qualifié est une convention. Comme toutes les conventions, personne n'est obligé de le suivre. Apache ne le font pas.
Ne pas répondre à la question quand vous ne connaissez pas la réponse. Ce n'est que du bruit.
OriginalL'auteur Pierre-Yves Saumont
Vous pouvez ajuster le niveau d'enregistrement par paquet. Voici l'exemple de http://wiki.apache.org/logging-log4j/Log4jXmlFormat:
Donc, même si votre niveau par défaut est "debug", pour les classes de com.eatmutton.muttonsite.couple de paquet (et imbriqués de paquets), le niveau serait "info"
Donc, vous avez besoin de savoir à quel paquet client HTTP classes d'appartenir et de l'ajouter à votre config.
OriginalL'auteur Paul Lysak