0
点赞
收藏
分享

微信扫一扫

Log 日志的使用.


首先要下载,log4j-1.2.11.jar 这个包 和 log4j.properties 的属性文件,

有了这两个文件之后,.我们开始新建Java工程,.

 

把log4j.properties属性文件拷贝到src目录下, 还有把log4j-1.2.11.jar 包拷贝到lib目录中,

接下来,开始写Log的封装类..

 

package pack.java.conmm.log;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.logging.LogFactory;
public class Log {
	private org.apache.commons.logging.Log log;
	private static final String POSSIBLE_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";	
	private static final int RANDOM_KEY_LENGTH = 4;
	
	public Log() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	private static ThreadLocal threadlocal_UniqueKey = new ThreadLocal() {
		protected synchronized Object initialValue() {
			return RandomStringUtils.random(RANDOM_KEY_LENGTH, POSSIBLE_CHARS);
		}
	};
	
	public static String getUniqueKey(){
		return (String)threadlocal_UniqueKey.get();
	}
	
	public static void destoyUniqueKey(){
		threadlocal_UniqueKey.set(null);
	}
	
	public static Log getLog(Class class1){
		return new Log(class1);
	}

	public Log(Class class1) {
		this.log=LogFactory.getLog(class1);
	}
	
	public void error(String msg){
		log.error(getUniqueKey()+"-"+msg);
	}
	
	public void error(String msg,Throwable throwable){
		log.error(getUniqueKey()+"-"+msg,throwable);
	}
	
	public void info(String msg){
		log.info(getUniqueKey()+"-"+msg);
	}
	
	public void info(String msg,Throwable throwable){
		log.info(msg, throwable);
	}
	
	public void debug(String msg){
		log.debug(msg);
	}
	
	public void warn(String msg){
		log.warn(msg);
	}
	
	public void warn(String msg,Throwable throwable){
		log.warn(msg, throwable);
	}
	
	public void debug(String msg,Throwable throwable){
		log.debug(msg, throwable);
	}
	
	public void trace(String msg){
		log.trace(msg);
	}
	
	public void trace(String msg,Throwable throwable){
		log.trace(msg, throwable);
	}
}

 

 

建立一个BaseException异常类,继承至Exception类;

package pack.java.exception;

/**
 * BaseException 类 继承只 父类Exception;
 * @author Administrator
 *
 */
public class BaseException extends Exception {

	private static final long serialVersionUID = -2059199777137667299L;

	public BaseException() {
		super();
		// TODO Auto-generated constructor stub
	}

	public BaseException(String message, Throwable cause) {
		super(message, cause);
		// TODO Auto-generated constructor stub
	}

	public BaseException(String message) {
		super(message);
		// TODO Auto-generated constructor stub
	}

	public BaseException(Throwable cause) {
		super(cause);
		// TODO Auto-generated constructor stub
	}
}

 

 

//自定义的一个异常,继承至BaseException类;

package pack.java.exception;

public class PersonException extends BaseException {

	private static final long serialVersionUID = -3330457952276038323L;
	
	public PersonException(){
		super("Unkown System PersonException.");
	}
	
	public PersonException(String msg){
		super(msg);
	}
	
	public PersonException(String msg,Throwable cause){
		super(msg, cause);
	}
	
	public PersonException(Throwable cause){
		super(cause);
	}
}

 

 

建立一个简单的JavaBean文件.

package pack.java.javaBean;

import java.io.Serializable;

public class Person implements Serializable {
	private static final long serialVersionUID = 4540756310460625945L;
	private String name;
	private String sex;
	private int age;
	private String address;
	private String cardId;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getCardId() {
		return cardId;
	}
	public void setCardId(String cardId) {
		this.cardId = cardId;
	}
	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Person(String name, String sex, int age, String address,
			String cardId) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
		this.address = address;
		this.cardId = cardId;
	}
	
	
}

 

 

 

JavaBean创建好之后,接下来就是写测试类了.

 

package pack.java.service;

import java.util.ArrayList;
import java.util.List;

import pack.java.conmm.log.Log;
import pack.java.exception.PersonException;
import pack.java.javaBean.Person;

public class TestLog{
	private Log log=new Log(PersonServiceImpl.class);
	public List<Person> getPerson() throws PersonException {
		// TODO Auto-generated method stub
		List<Person> list=new ArrayList<Person>();
		Person person2=new Person();
		person2.setName("有名");
		person2.setAddress("上海");
		person2.setAge(22);
		person2.setCardId("3244554433335434");
		person2.setSex("Girl");
		list.add(person2);
		
		Person person=new Person();
		person.setName("无名");
		person.setAddress("深圳");
		person.setAge(11);
		person.setCardId("43022113333323");
		person.setSex("boy");
		list.add(person);
		
		for(Person per:list){
			if(per.getAge() == 11){
				log.debug("我设置的年龄为11岁,这里抛出异常.");
				throw new PersonException("我设置的年龄为11岁",new Throwable("抛出异常!!"));
			}else{
				log.debug(per.getName()+","+per.getAge()+","+per.getAddress()+","+per.getSex());
			}
		}
		return list;
	}

	public Person setPerson(Person person) throws PersonException {
		// TODO Auto-generated method stub
		return person;
	}

	public static void main(String[] args){
		new PersonServiceImpl().getLogMethod();
	}
	
	public void getLogMethod(){
		PersonServiceImpl personServiceImpl=new PersonServiceImpl();
		try {
			personServiceImpl.getPerson();
		} catch (PersonException e) {
			// TODO Auto-generated catch block
			log.debug("PersonException:",e);
			e.printStackTrace();
		}
		System.out.println("继续执行@@@@@@@");
	}
}

 

 

 

运行之后,我们就能在控制台输出:

------------------------------------------------------------------------------------------------------

2010-11-12 13:52:59  有名,22,上海,Girl
2010-11-12 13:52:59  我设置的年龄为11岁,这里抛出异常.
2010-11-12 13:52:59  PersonException:
pack.java.exception.PersonException: 我设置的年龄为11岁
 at pack.java.service.PersonServiceImpl.getPerson(PersonServiceImpl.java:36)
 at pack.java.service.PersonServiceImpl.getLogMethod(PersonServiceImpl.java:56)
 at pack.java.service.PersonServiceImpl.main(PersonServiceImpl.java:50)
Caused by: java.lang.Throwable: 抛出异常!!
 ... 3 more
pack.java.exception.PersonException: 我设置的年龄为11岁
 at pack.java.service.PersonServiceImpl.getPerson(PersonServiceImpl.java:36)
 at pack.java.service.PersonServiceImpl.getLogMethod(PersonServiceImpl.java:56)
 at pack.java.service.PersonServiceImpl.main(PersonServiceImpl.java:50)
Caused by: java.lang.Throwable: 抛出异常!!
 ... 3 more
继续执行@@@@@@@

 

红色部分的是,抛出出来的堆栈,信息.. 而黑色字体这时Log里面在控制台输出的信息,然后我们在工程refresh一下.就能看到

一个XXX.Log日志文件,里面就保存了控制台输出的信息了.

 

这个就是我生成之后的.log文件的内容.

2010-11-12 13:52:59  pack.java.conmm.log.Log.debug(Log.java:59)  有名,22,上海,Girl
2010-11-12 13:52:59  pack.java.conmm.log.Log.debug(Log.java:59)  我设置的年龄为11岁,这里抛出异常.
2010-11-12 13:52:59  pack.java.conmm.log.Log.debug(Log.java:71)  PersonException:
pack.java.exception.PersonException: 我设置的年龄为11岁
 at pack.java.service.PersonServiceImpl.getPerson(PersonServiceImpl.java:36)
 at pack.java.service.PersonServiceImpl.getLogMethod(PersonServiceImpl.java:56)
 at pack.java.service.PersonServiceImpl.main(PersonServiceImpl.java:50)
Caused by: java.lang.Throwable: 抛出异常!!
 ... 3 more

 

 

举报

相关推荐

0 条评论