我想知道我應該在哪裏放置日誌代碼在我的C#應用程序。在哪裏放置日誌代碼
假設我想記錄程序參數(如myapp.exe -arg1)。
在它到達解析參數(實際上只有一個參數)的簡單工廠類之前,使用main()從入口點類傳遞參數並根據參數創建一個對象。
解析參數(層次結構底部)的工廠是否應負責記錄參數,或者是否應將參數記錄在main(層次結構的頂部)中。
我覺得工廠類是正確的地方,但我經常懷疑正確的日誌代碼位置,並且真的很感謝我可以重用的一些最佳實踐。
我想知道我應該在哪裏放置日誌代碼在我的C#應用程序。在哪裏放置日誌代碼
假設我想記錄程序參數(如myapp.exe -arg1)。
在它到達解析參數(實際上只有一個參數)的簡單工廠類之前,使用main()從入口點類傳遞參數並根據參數創建一個對象。
解析參數(層次結構底部)的工廠是否應負責記錄參數,或者是否應將參數記錄在main(層次結構的頂部)中。
我覺得工廠類是正確的地方,但我經常懷疑正確的日誌代碼位置,並且真的很感謝我可以重用的一些最佳實踐。
作爲一個自定義規則,我總是儘可能記錄下調用堆棧的內容,同時仍然有意義執行日誌(以避免記錄太頻繁調用的小方法)。如果因爲記錄太差而丟失了某些語義,則可以始終將擴展日誌信息添加一點。
我想你應該登錄工廠。
如果稍後將代碼遷移到另一個環境中使用,main()可能不存在。所有的main()都在傳遞這些信息。因此,如果您創建了一個ASP應用程序,並且想要保留相同的日誌記錄細節,那麼工廠方法將是有用的,因爲工廠會根據參數決定創建的內容。