I want to add a logging (debug) facility to my Servlets and have come across log4j. It seems simple enough to use, but how does it all work? Is it just case of getting an instance of a Logger object and calling the debug() method? Can I have some sort of simple "-verbose" switch so I can turn the logging on and off (like with the java.exe -verbose option)? I know there is a properties file, but how can I setup it up to do this?
A simple way to configure log4j is using a properties (or xml) file. The first time Logger.getLogger() is called log4j looks for either log4j.xml or log4j.properties on the classpath.
The manual also has sample properties files.
Then you said you wanted to turn off debug logging. Log4j uses Levels, if you set a logger's level to WARN, then it will log messages that are at level WARN or more severe (see manual for more or better explanation)
Suppose we are no longer interested in seeing the output of any component belonging to the com.foo package. The following configuration file shows one possible way of achieving this.