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:
log4j

2. Configure Log4j externally

Create a file named “log4j.properties” in the “src” directory of your project.

# Define the root logger with appender file
log = /home/ryan/Desktop/log4j
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

Here is the java code.

package Test;
import org.apache.log4j.Logger;
public class TestLogger {
	static Logger myLogger = Logger.getLogger(TestLog.class.getName());
 
	public static void main(String[] args) {
		myLogger.info("testing");
		myLogger.warn("warning testing");
		myLogger.error("this is an error");
	}
 
}

The log will be printed on the log.out file in /home/ryan/Desktop/log4j directory.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值