寫程序遇到個問題,找了很久找到的問題;
在工具類裏用靜態代碼塊加載了 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