我已经编写了一个日志类和一个函数,如以下代码所示:
Log(System.Reflection.MethodBase methodBase, string message)
每次登录时,我也会从methodBase.Name和methodBase.DeclaringType.Name中记录类名。
我阅读了以下Using Get CurrentMethod帖子,发现该方法很慢。
我应该使用this.GetType()而不是System.Reflection.MethodBase,还是应该在日志中手动记录类/方法名称,例如Log(“ClassName.MethodName”,“日志消息)?最佳实践是什么?
最佳答案
真的要看
如果使用this.GetType()
方法,您将丢失方法信息,但将获得很大的性能提升(根据链接,显然是1200倍)。
如果提供的接口(interface)允许调用者提供字符串(例如Log("ClassName.MethodName", "log message")
),则可能会获得更好的性能,但这会使您的API不那么友好(调用开发者必须提供类名和方法名)。