Savez-vous comment désactiver les avertissements, les notes et les erreurs dans HtmlUnit ?
HtmlUnit fournit SilentCssErrorHandler afin que vous n'ayez pas à créer une classe interne anonyme vide pour setCssErrorHandler(ErrorHandler)
.
Savez-vous comment désactiver les avertissements, les notes et les erreurs dans HtmlUnit ?
Placez ceci quelque part au début de votre code ; il fermera sa sale gueule :
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF);
webClient = new WebClient(bv);
webClient.setCssEnabled(false);
webClient.setIncorrectnessListener(new IncorrectnessListener() {
@Override
public void notify(String arg0, Object arg1) {
// TODO Auto-generated method stub
}
});
webClient.setCssErrorHandler(new ErrorHandler() {
@Override
public void warning(CSSParseException exception) throws CSSException {
// TODO Auto-generated method stub
}
@Override
public void fatalError(CSSParseException exception) throws CSSException {
// TODO Auto-generated method stub
}
@Override
public void error(CSSParseException exception) throws CSSException {
// TODO Auto-generated method stub
}
});
webClient.setJavaScriptErrorListener(new JavaScriptErrorListener() {
@Override
public void timeoutError(HtmlPage arg0, long arg1, long arg2) {
// TODO Auto-generated method stub
}
@Override
public void scriptException(HtmlPage arg0, ScriptException arg1) {
// TODO Auto-generated method stub
}
@Override
public void malformedScriptURL(HtmlPage arg0, String arg1, MalformedURLException arg2) {
// TODO Auto-generated method stub
}
@Override
public void loadScriptError(HtmlPage arg0, URL arg1, Exception arg2) {
// TODO Auto-generated method stub
}
});
webClient.setHTMLParserListener(new HTMLParserListener() {
@Override
public void warning(String arg0, URL arg1, int arg2, int arg3, String arg4) {
// TODO Auto-generated method stub
}
@Override
public void error(String arg0, URL arg1, int arg2, int arg3, String arg4) {
// TODO Auto-generated method stub
}
});
webClient.setThrowExceptionOnFailingStatusCode(false);
webClient.setThrowExceptionOnScriptError(false);
HtmlUnit fournit SilentCssErrorHandler afin que vous n'ayez pas à créer une classe interne anonyme vide pour setCssErrorHandler(ErrorHandler)
.
Je n'ai pas eu à les utiliser tous. J'ai simplement utilisé java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF) ; cela a fonctionné pour moi.
Il est utile de mentionner que sur certaines versions, vous devez appeler getOptions()
sur le webClient d'abord pour définir les options de lancement d'exception dans cet exemple, comme ceci : webClient.getOptions().setThrowExceptionOnScriptError(false);
Le code dans La réponse d'Arsen Zahray a permis de supprimer presque tous les journaux générés par HtmlUnit.
Mais un seul montage permet de les supprimer tous. Utilisez :
java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
au lieu de :
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
Pour supprimer tous les résultats de la dernière version de HtmlUnit, il suffit d'ajouter ces lignes dans un bloc statique ou dans votre classe principale :
java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
Il n'est PAS nécessaire de surcharger une méthode comme le disent certaines autres réponses.
Vous y trouverez des informations sur comment manipuler la journalisation de HtmlUnit .
C'est ce que j'ai ajouté à mon log4j.properties
afin de désactiver les messages de débogage verbeux des composants HtmlUnit :
# Set specific logger levels.
log4j.logger.org.mortbay.log=fatal
log4j.logger.org.apache.http=fatal
log4j.logger.org.apache.http.headers=fatal
log4j.logger.org.apache.http.wire=fatal
# For HttpClient 3, which is used by FirefoxDriver
log4j.logger.httpclient.wire=fatal
log4j.logger.org.apache.commons=fatal
log4j.logger.com.gargoylesoftware.htmlunit=fatal
log4j.logger.com.gargoylesoftware.htmlunit.WebTestCase=fatal
# Change this to TRACE when enabling the debugger.
log4j.logger.com.gargoylesoftware.htmlunit.javascript.DebugFrameImpl=fatal
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.