写程序遇到个问题,找了很久找到的问题;
在工具类里用静态代码块加载了 log4j的配置文件,代码如下:
public class Constants {
static {
//加载log4j配置文件
PropertyConfigurator.configure(SYSDIR + "/log4j.properties" );
}}
问题:日志一直无法记录 加载不到配置文件
误区:记得说静态代码块是在类加载的时候被执行,这个类已经用了,静态代码块应该被执行了。
解决:后来发现尽管用了类里的属性,但是静态代码块是在类被初始化的时候才执行,并不是加载的时候。
一个类的运行分为以下步骤:
1.装载
2.连接
3.初始化(**static块被加载 且只加载一次**)
参考博客:http://www.cnblogs.com/ivanfu/archive/2012/02/12/2347817.html