2009-09-22 69 views
1

我想知道我應該在哪裏放置日誌代碼在我的C#應用​​程序。在哪裏放置日誌代碼

假設我想記錄程序參數(如myapp.exe -arg1)。

在它到達解析參數(實際上只有一個參數)的簡單工廠類之前,使用main()從入口點類傳遞參數並根據參數創建一個對象。

解析參數(層次結構底部)的工廠是否應負責記錄參數,或者是否應將參數記錄在main(層次結構的頂部)中。

我覺得工廠類是正確的地方,但我經常懷疑正確的日誌代碼位置,並且真的很感謝我可以重用的一些最佳實踐。

回答

1

作爲一個自定義規則,我總是儘可能記錄下調用堆棧的內容,同時仍然有意義執行日誌(以避免記錄太頻繁調用的小方法)。如果因爲記錄太差而丟失了某些語義,則可以始終將擴展日誌信息添加一點。

2

我想你應該登錄工廠。

如果稍後將代碼遷移到另一個環境中使用,main()可能不存在。所有的main()都在傳遞這些信息。因此,如果您創建了一個ASP應用程序,並且想要保留相同的日誌記錄細節,那麼工廠方法將是有用的,因爲工廠會根據參數決定創建的內容。