最近有一位同事讓我對我們的一些日誌做一些改進,因爲日誌並沒有給他提供有意義的信息,所以他無法弄清楚問題。爲了記錄的目的,我應該重寫ToString嗎?
我認爲的第一件事是直接在Debug
調用中打印更多關於對象的信息String.Format
(我們現在使用的是log4net)。我立即改變了這種思路,只在模型和日誌上實現了ToString
方法,因爲我可以在代碼中的多個位置記錄同一個類,並且只想在一個位置實現格式化。
最後,這是當前的解決方案:我在違規類和子類上實現了ToString
,並開始記錄類本身。
雖然想了一下,但我想知道這是否是正確的方法,或者是否有另一種更優雅/正確的方法。
我發現了一些關於此事的帖子,如this one,但沒有足夠的結論。我甚至想知道使用DebuggerDisplayAttribute
是不是一個體面的做法:它用於調試目的,如日誌記錄。 Log4net也支持被稱爲ObjectRenders that can be used for such purposes,但我覺得這有點奇怪,非常特定於log4net。
我覺得這個問題很廣泛,包含了所有面向對象的語言,但是我的具體情況是.Net。在記錄和使用方法方面是否有最佳的最佳做法?
Imho使用'ToString'來記錄或調試目的很好。它使你的生活變得更加簡單。 –