如何使用属性以声明方式使用 log4net 记录方法名称和参数?

How do I log method name and parameters with log4net declaratively using attributes?

我目前在我的应用程序的每个方法中都使用 Log.DebugFormat 来记录方法名称:

Public Sub Checkout(order As Order)
    Log.DebugFormat(Reflection.MethodBase.GetCurrentMethod().Name)
    ...
End Sub

有没有更好的方法来使用 log4net 的属性,这样我的方法看起来更清晰?

您可以通过在格式中使用堆栈跟踪来获取方法名称:

stacktrace:

Used to output the stack trace of the logging event The stack trace level specifier may be enclosed between braces. For example, %stacktrace{level}. If no stack trace level specifier is given then 1 is assumed Output uses the format: type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 This pattern is not available for Compact Framework assemblies.