How do I configure Log4J with properties?
Author: Deron Eriksson
Description: This Java tutorial describes how to configure Log4J via a properties file.
Tutorial created using:
Windows XP || JDK 1.5.0_09 || Eclipse Web Tools Platform 1.5.1
(Continued from page 2) Of course, placing a properties file at the top of your source directory does have its limits. Thankfully, the PropertConfigurator class lets you solve this problem, since you can pass it the location/name of the log4j properties file that you would like to use. Let's create a mylog4j.properties file at the root level of our project. ![]() The mylog4j.properties file is shown below. It is very similar to the log4j.properties file that we saw earlier. Note that the log level is set to DEBUG. mylog4j.properties# This sets the global logging level and specifies the appenders log4j.rootLogger=DEBUG, myConsoleAppender # settings for the console appender log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.myConsoleAppender.layout.ConversionPattern=%-5p %c %x - %m%n This project contains a Log4JPropertiesTest2 class that is just like the Log4JPropertiesTest class except that it features the following line: PropertyConfigurator.configure("mylog4j.properties"); This line initializes log4j with the configuration properties specified in log4j.properties. Log4JPropertiesTest2.javapackage test; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log4JPropertiesTest2 { static Logger log = Logger.getLogger(Log4JPropertiesTest2.class); public static void main(String[] args) { PropertyConfigurator.configure("mylog4j.properties"); log.debug("This is a debug message"); myMethod(); log.info("This is an info message"); } private static void myMethod() { try { throw new Exception("My Exception"); } catch (Exception e) { log.error("This is an exception", e); } } } In the EclipseSW debug configuration, I don't have the VM -Dlog4j.debug=true argument present in the earlier example. For normal use, typically this argument is not present. If we run Log4JPropertiesTest2, we see the following: ![]() As you can see, the ConsoleAppender outputs our log messages to the console according to the pattern that we specified in mylog4j.properties. (Continued on page 4) Related Tutorials:
|