User log4j and commons-logging.jar in the class path. These jar files contain the information for logging set up.Declare the following as a class
attribute in the class where you want to implement the logging, say SomeClass.java
private static Logger logger = Logger.getLogger (com.mattiz.SomeClass.class);
You would have a sample log4j properties configuration file which you should put in your classpath.
Suppose you wanted the line “Test Debug” to go to your log
file use logger.error or logger.debug or logger.warn.
Viz. logger.error(“Test Debug”);
For warning/ debugging messages you could use
logger.warn(“This is a warning”);
or
logger.debug(“Variable value is”+var);
In the log4j configuration file you can set the level of logging.In the sample configuration file you will find words like ERROR,WARN or DEBUG.If you
set the level to WARN, then only warnings and errors will print, while debug won’t print. If you set the level to DEBUG level then debug, warn and error
will print.These may go to the console or to a separate log output file based on the settings in the log4j configuration file. The log4j.properties contains
settings to “rollover” files. If file becomes more than 1 MB then copying to another file and creating a new file is done automatically by log4j. With the
settings in the log4j.properties file you can control
what is being logged. By setting it to ERROR level, debug statements won’t be printed in the production system.For development use DEBUG level because you
want to see debug messages.
The hierarchy is
DEBUG < INFO < WARN < ERROR < FATAL
If set to WARN level, all warn, error and fatal messages will be printed but no info and debug messages will be printed.You can set logging levels for each
package. So if you are working on a certain package you can set the package’s logging level to DEBUG, and another package’s logging level to WARN in the
log4j properties file.
For example
log4j.category.com.mattiz.security = WARN
You need not use all the debugging levels; mostly people use
DEBUG and ERROR. You can put error level messages inside the catch block.Error logs are like this logger.error(“Exception critical”+ex.toString());You can do this for production systems.
Contents of a simple log4j.properties configuration file
# Print FATAL, ERROR and WARN messages – do not print
DEBUG and INFO messages
# the sequence is FATAL > ERROR > WARN > DEBUG > INFO
# since the level is set to WARN – message levels above it will
be printed
# while levels below it will not be printed
log4j.rootCategory=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # the conversion pattern will be used to format the timestamp see below example # 2004-05-13 17:15:13,318 [Servlet.Engine.Transports : 1] DEBUG # this will pre-pend all logging messages log4j.appender.stdout.layout.ConversionPattern=%d [%t] %- 5p %c{1} - %m%n Contents of a more elaborate log4j.properties file # the general level is set to WARN # WARN, ERROR, FATAL will be printed # In addition to printing to System Out, also print to "RollingFile" log4j.rootCategory=WARN, stdout, RollingFile # the level for the com.mattiz.web package (and subpackages) is set to DEBUG # DEBUG, WARN, ERROR, FATAL will be printed for the web package log4j.category.com.mattiz.web=DEBUG log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Print the date and time for systemOut log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n # Save log to Rolling File Also log4j.appender.RollingFile=org.apache.log4j.RollingFileAppender # Location of rolling file log4j.appender.RollingFile.File=d:/mattiz/mattiz.log # if the file becomes greater than 500KB then create a new file and backup the old file log4j.appender.RollingFile.MaxFileSize=500KB # Keep 5 back up files log4j.appender.RollingFile.MaxBackupIndex=5 log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout #Print the date and time for RollingFile log4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n