我的WinForms项目中有很多函数,我正在使用NLog进行日志记录。我希望能够使用nlogger.Info("start")
和nlogger.Info("end")
包装每个函数,以便我知道实际发生异常的位置或代码当前运行的位置。
有没有一种聪明的方法可以做到这一点,或者我需要在我的所有功能中放置上面的行?
答案 0 :(得分:3)
我相信PostSharp可以为您执行此操作,并且可以在程序集级别(通过程序集级别属性)应用。但是,我会对潜在的性能影响持谨慎态度。写“方面”应该是非常小的。
答案 1 :(得分:2)
如果您不想手动执行此操作,您可以考虑使用面向方面编程。
总结它是什么,它匹配在之前,之后或周围运行并提供“建议”的功能。因此,您可以轻松地创建一个在所有功能上运行并添加到日志中的功能。从未将它用于C#,但我将它用于Java。
您可以找到.NET的类。阅读本文以获取更多信息:
http://www.developerfusion.com/article/5307/aspect-oriented-programming-using-net/