最近有一位同事让我对我们的一些日志做一些改进,因为日志并没有给他提供有意义的信息,所以他无法弄清楚问题。为了记录的目的,我应该重写ToString吗?
我认为的第一件事是直接在Debug
调用中打印更多关于对象的信息String.Format
(我们现在使用的是log4net)。我立即改变了这种思路,只在模型和日志上实现了ToString
方法,因为我可以在代码中的多个位置记录同一个类,并且只想在一个位置实现格式化。
最后,这是当前的解决方案:我在违规类和子类上实现了ToString
,并开始记录类本身。
虽然想了一下,但我想知道这是否是正确的方法,或者是否有另一种更优雅/正确的方法。
我发现了一些关于此事的帖子,如this one,但没有足够的结论。我甚至想知道使用DebuggerDisplayAttribute
是不是一个体面的做法:它用于调试目的,如日志记录。 Log4net也支持被称为ObjectRenders that can be used for such purposes,但我觉得这有点奇怪,非常特定于log4net。
我觉得这个问题很广泛,包含了所有面向对象的语言,但是我的具体情况是.Net。在记录和使用方法方面是否有最佳的最佳做法?
Imho使用'ToString'来记录或调试目的很好。它使你的生活变得更加简单。 –