An Entry Example of Log4j
The log4j can be configured both programmatically and externally using special configuration files. External configuration is most preferred, because to take effect it doesn’t require change in application code, recompilation, or redeployment. Configuration files can be XML files or Java property files that can be created and edited using any text editor or XML editor, respectively.
1. programmatically configure log4j. This example is from this site, the code is messy, so why not make it clean.
package Test; import org.apache.log4j.*; public class TestLog { /* * get a static logger instance with name TestLog */ static Logger myLogger = Logger.getLogger(TestLog.class.getName()); Appender myAppender; SimpleLayout myLayout; /* Constructor */ public TestLog() { /* * Set logger priority level programmatically. Though this is better done externally */ myLogger.setLevel(Level.ALL); /* * Instantiate a layout and an appender, assign layout to appender * programmatically */ myLayout = new SimpleLayout(); myAppender = new ConsoleAppender(myLayout); // Appender is Interface /* Assign appender to the logger programmatically */ myLogger.addAppender(myAppender); } // end constructor public void do_something(int a, float b) { /* * This log request enabled and log statement logged, since INFO = INFO */ myLogger.info("The values of parameters passed to method do_something are: "+ a + ", " + b); /* this log request is not enabled, since DEBUG < INFO */ myLogger.debug("Operation performed successfully"); Object x=null; if (x == null) { /* * this log request is enabled and log statement logged, since ERROR * > INFO */ myLogger.error("Value of X is null"); } } // end do_something() public static void main(String []args){ new TestLog().do_something(1, 3); } } // end class MyClass
Here is the snapshot of output:

2. Configure Log4j externally

Here is the java code.
package Test; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class TestLogger { static Logger myLogger = Logger.getLogger(TestLog.class.getName()); /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub PropertyConfigurator.configure("src/log-config.properties"); myLogger.info("testing"); myLogger.warn("warning testing"); myLogger.error("this is an error"); } }
You may also like:
Leave a comment