How to disable log4j logging in Http Client 4.1 to log to FileAppender

httpclient, java, log4j

Solution

What worked finally, Logger.getLogger("org.apache.http").setLevel(org.apache.log4j.Level.OFF); I was not using the right key.

Problem

Here is my log4j configuration for a HTTP client: ``` log4j.appender.HTTPCLIENT_APPDR=com.xxx.log.FileAppender log4j.appender.HTTPCLIENT_APPDR.File=${user.dir}/log/access.log log4j.appender.HTTPCLIENT_APPDR.layout=org.apache.log4j.PatternLayout log4j.appender.HTTPCLIENT_APPDR_APPDR.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss SSS}ms %-5p [%t] - %m%n log4j.appender.HTTPCLIENT_APPDR.MaxFileSize=20000KB log4j.appender.HTTPCLIENT_APPDR.MaxBackupIndex=30 log4j.logger.org.apache.http=DEBUG,HTTPCLIENT_APPDR ``` I would like it to turn off the `httpclient` logging from the CODE depending on the environment I am in (I know how to disable it from the log4j.properties). I tried inserting these lines: ``` + System.setProperty("log4j.logger.org.apache.http", "ERROR"); ``` or ``` + Logger.getLogger("log4j.logger.org.apache.http").setLevel(Level.off) ``` in the start of my application but it does not work.` - Can I access the log4j properties from the System class? - When I look at the `Logger.getLogger("log4j.logger.org.apache.http")` the level is null? Should it not be DEBUG? What worked finally, ``` Logger.getLogger("org.apache.http").setLevel(org.apache.log4j.Level.OFF); ``` I was not using the right key. Regards,

Original source