2012-07-20 24 views
2

我無法控制在項目中調用System.getProperty的位置。我想在控制檯中記錄一些信息,只要System.getProperty(「SomeProperty」);叫做。如何找出項目中調用System.getProperty()方法的位置?

如何實現這一點。

+2

您將不得不編寫另一個程序來解析當前程序的源代碼以查找System.getProperty()調用。爲什麼你需要這個? – 2012-07-20 03:18:12

+2

*「我無法控制項目中調用System.getProperty的位置。」*您是否有IDE或grep來識別這些地方? *「如何實現這一目標」。*我懷疑你正在試圖達到這個目標,錯誤的方式。這樣做的目標是什麼? – 2012-07-20 03:18:57

+0

順便說一句 - Swing標籤暗示桌面應用程序。是Web服務的一個元素或消費者。假定桌面應用程序。運行在不是服務器的桌面上,無論創建哪個日誌,都將在客戶端文件系統上創建。 – 2012-07-20 04:15:17

回答

3

您想使用AspectJ及其pointcut。看看here瞭解更多。

這裏是一個從上述教程改編的例子。

@Aspect 
public class Foo { 

    @Pointcut("call(* java.lang.System.getProperty(..))") 
    void anyUtilityCall() { 
     // do whatever you need 
    } 

} 
相關問題