c# - 登录 C# : Getting the class/method name performance

标签 c# logging

我最近的任务是为解决方案中的每个方法调用添加日志记录语句。这些日志条目需要包含类和方法名称。

我知道我可以使用 MethodBase.GetCurrentMethod()StackFrame.GetMethod() 方法。哪个更好?是否有更好(或更高效)的方法来获取类和方法名称?

最佳答案

嗯,最好/最快的方法是在每个函数中包含一个字符串。这可能不是最实用的解决方案,但是 MethodBase.GetCurrentMethod() 无论如何都需要在每个使用它的方法中进行编码。即你可以写

string funcName = "MyClass.MyFunction(int, int)";

或者你可以写

string funcName = MethodBase.GetCurrentMethod().Name

现在,如果您想获取调用当前函数的函数的名称(即,您想在日志函数的一个位置执行此操作),那么您唯一的选择就是阅读通过 StackFrame。

关于c# - 登录 C# : Getting the class/method name performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568255/

相关文章:

bash - 如何仅检查自上次 checkin bash以来添加的行

Django - 记录每个 View 的操作

java - Slf4j 自定义提供程序实现未被拾取

java - 文件名中带有时间戳的 Logback 文件未滚动

c# - 如何在使用 AddNewtonsoftJson 时在 asp net core 3.1 mvc 中通过 DI(服务集合)检索 json 序列化程序设置

c# - 有人可以建议开发团队和 Beta 测试人员之间进行交流的在线解决方案吗

c# - 在 Visual Studio 2010 Express 中从 dll 自动生成 C# 包装器类?

c# - WPF 从动态图像向代码隐藏发送值?

c# - mongodb C#比较没有时间的日期

tomcat - 使用 logrotate 轮换 apache 日志