由于log4j的Logger类没有实现序列化接口,而java类的序列化必须保证所有成员变量都实现了序列化接口,所以使用Logger类作为需要序列化的目标类的成员变量时,只能声明为类(静态)的成员变量。
出错做法: class A implements Serializable{
Logger logger = Logger.getLogger(this.getClass());
....
}
正确做法:
class A implements Serializable{
Logger static logger = Logger.getLogger(A.class);
....
}