2012-05-16 104 views
1

我正在尋找一些最佳實踐建議。我有一個庫,我想添加一些調試代碼(認爲System.out.println),只有在配置文件中設置了標誌時纔會執行該代碼。Java Inline調試代碼

這是相當微不足道的,並將有我期望的幫助調試程序所需的輸出。話雖如此,似乎有很多交流,我會有很多if(DEBUG)語句浮動在我的生產代碼周圍。我並不擔心代碼的效率,更多的是關於實際執行某些操作的語句與僅用於調試的語句的可讀性。

我知道,對於大多數IDE,我可以簡單地通過代碼來有效地給自己一個更手動的調試選項,但是我發現任何代碼庫都足夠迭代,這種方法比只是傾銷更加痛苦事情到控制檯。我想另一個選擇是使用一個具有DEBUG設置的日誌框架,但我仍然覺得額外的日誌記錄指令會像將它們傳送到控制檯一樣醜陋。

我在這裏找不到任何選項嗎?他們的Java調試框架是否使得這個更清潔?對於參考點,我想知道何時調用某些特定方法以及執行過程中不同點處的各種對象的字符串表示。

在此先感謝。

回答

0

您可以使用AspectJ來註銷生產代碼並使其更容易閱讀。通過正確的切點,您可能不需要編寫幾乎儘可能多的調試代碼。如果您花費大量時間進行調試,請考慮進行單元測試或更嚴謹的開發方法。此外,從來沒有發現異常並記錄下你何時應該投擲。

1

我不太明白你的問題,但我還是建議你使用日誌框架,比如log4j,它允許你選擇生成你的日誌信息到文件,數據庫或控制檯。使用system.out非常強大。

+0

如果代碼可讀性非常嚴重,他可以使用方面日誌記錄。 –

+0

+1用於推薦日誌框架 – michael667

0

在IntelliJ IDEA中,您可以添加用於將消息或評估表達式記錄到控制檯的斷點。當它遇到斷點時,它會簡單地記錄並繼續執行。

我經常使用它,並結合條件斷點,充當調試語句,並更清楚地瞭解我的代碼在調試過程中正在做什麼。

很酷的事情是,您不必修改源代碼,因爲日誌語句是在調試器運行時添加的。

我想Eclipse可以讓你做同樣的事情。