HTTPClient per default relentlessly spams to stderr
---------------------------------------------------
Key: HTTPCLIENT-1054
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1054
Project: HttpComponents HttpClient
Issue Type: Improvement
Components: HttpClient
Environment: all
Reporter: Wulf Wechsung
Priority: Minor
HTTPClient relentlessly spams to stderr when including it into a project via
maven. This is not a decent default behaviour for a libary. Libaries should,
per default, communicate their internal state solely and adequatly via their
API and let it be up to the application to react to that state (logging it is
one such reaction). From some replies to tickets in the same vain I can see
that this is perhaps a sensitive topic as some see logging to be a core concern
of HTTPClient. I do agree it's helpful as a debugging tool but as such it needs
to be opt-in. As a standard error output, the logging of HTTPClient is
absolutely useless because it does not and can not describe what the
application is trying to do.
Why this improvement when there is a way to disable HTTClient logging (in fact,
there seem to be many ways ... always a bad sign ..)?
Do a google search for: httpclient "console spam"
204 hit for this harsh phrasing alone. Search this phrase for any other libary
you like to use and compare the number of hits. Ask youself, how often have you
seen the java standard libary write to stdout or stderr?
Personally, I tried to disable it via JDK14
getLogger("org.apache").setLevel(Level.OFF) which wouldn't work and now am
using a solution I found on Stackoverflow which is:
System.setProperty("org.apache.commons.logging.Log",
"org.apache.commons.logging.impl.NoOpLog"); }
The problem I have is that I include this lib and suddently my console is
useless because httpclient is all over it (writing a system monitor ...). I
have to search google to find a solution
(http://hc.apache.org/httpcomponents-client-ga/logging.html does not tell you
how to turn logging off ...) and the logical one "turn of the JDK logger" does
not work right away.
It's really a matter of following the principal of least suprise (a libary is
not expected to write to the console which is the observable default behaviour
of HTTPClient) and the principal of separation of concerns (logging is a
concern for applications and not for libaries).
Following at least one of these would substantially increase the joy of working
with the HTTPClient libary.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]