我想知道应该在我的C#应用程序中放置日志代码的位置。
假设我想记录程序参数(例如myapp.exe -arg1)。
参数从带有main()的入口点类传递,然后到达一个解析参数的简单工厂类(实际上只有一个参数)并根据参数创建一个对象。
解析参数的工厂(层次结构的底部)应该负责记录参数,还是应该在main(层次结构的顶部)中记录参数。
我觉得工厂级别是正确的地方,但我经常对正确记录代码的位置存在疑问,并且非常感谢我可以重用的一些好的最佳实践。
答案 0 :(得分:2)
我认为你应该登录工厂。
如果稍后迁移代码以在另一个环境中使用,则main()可能不存在。所有main()正在做的就是传递这些信息。因此,如果您创建一个ASP应用程序,并希望保留相同的日志记录详细信息,那么工厂方法将非常有用,因为工厂会根据参数决定创建的内容。
答案 1 :(得分:1)
作为一个自定义规则,我总是尝试尽可能地记录调用堆栈中的内容,同时仍然有意识地执行日志(以避免记录过于频繁调用的小方法)。如果由于记录太低而丢失了一些语义,那么总是可以将扩展日志信息添加一点。