J'utilise org.apache.log4j.Logger et je souhaite désactiver les messages de débogage pour htmlunit. Rien de ce que je fais ne semble fonctionner. Je continue à recevoir des messages de débogage Http.wire, Http.headers, etc. Je l'enregistreur racine ce déboguerJe ne peux pas désactiver la journalisation HtmlUnit
J'ai essayé de placer cette ligne dans mon code:
org.apache.log4j.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(org.apache.log4j.Level.OFF);
J'ai aussi essayé de placer cette ligne dans mon fichier log4j.properties:
log4j.logger.com.gargoylesoftware.htmlunit=WARN
C'est le contenu de mon fichier log4j.properties:
log4j.logger.com.gargoylesoftware.htmlunit=ERROR
log4j.logger.org.apache.commons.httpclient=ERROR
# Tell the root lodger what appenders and level to use
log4j.rootLogger=DEBUG, A1, A2
##### Console Appender #####
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n
##### File Appender #####
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=/var/log/mylogfile.log
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n
log4j.appender.A2.Append=false
Toute aide serait appréciée.
Modifier 15.11.16 (Ajout de code de test)
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.html.*;
import org.junit.*;
import static org.junit.Assert.*;
import org.apache.commons.logging.*;
import org.apache.log4j.*;
public class Test01
{
@Test
public void homePage() throws Exception
{
LogFactory.getFactory().setAttribute("com.gargoylesoftware.htmlunit", "org.apache.commons.logging.impl.Log4JLogger");
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.Log4JLogger");
org.apache.log4j.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.WARN);
org.apache.log4j.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.WARN);
Logger.getRootLogger().setLevel(Level.DEBUG);
Logger.getRootLogger().debug("Start");
WebClient webClient = new WebClient()
HtmlPage page = webClient.getPage("https://google.com");
Logger.getRootLogger().debug("End");
}
Merci pour avoir l'aide. log4j.logger.com.gargoylesoftware.htmlunit = ERREUR dans le fichier de propriétés ne fait rien. Les extraits de code fonctionnent mais désactivent les journaux de débogage de l'enregistreur racine. J'ai essayé SimpleLog et aussi Log4JLogger sans chance. Je n'arrive pas à comprendre pourquoi les paramètres de mon fichier log4j.properties ne peuvent pas définir différents niveaux pour différents enregistreurs. J'ai mis à jour ma question originale avec le fichier log4j.properties que j'utilise. – zappullae
BTW. J'ai le même problème avec les détails de fil de html de notation d'Authorize.net. – zappullae
Après avoir expérimenté cela, il semble que seul l'enregistreur de racine est utilisé. La définition des niveaux et des attributs de org.apache.commons.logging.Log et de com.gargoylesoftware.htmlunit n'a aucun effet. La seule chose qui fonctionne est si je mets un niveau dans le fichier log4j.properties ou si je fais un Logger.getRootLogger(). SetLevel (Level.WARN). Ces deux solutions affectent tous les enregistrements, pas seulement ceux que je voudrais contrôler. Cela ne peut pas être si difficile à faire, ai-je oublié quelque chose? – zappullae