2017-06-04 4 views
0

私は現在、メソッド名をログに記録する私のアプリのあらゆる方法でLog.DebugFormatを使用します。属性を使用して宣言的にlog4netでメソッド名とパラメータを記録するにはどうすればよいですか?

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

log4netと属性を使用して、それを行うには良い方法はありますので、私の方法はきれいに見えますか?

+1

log4netだけではなく、[PostSharp](https://www.postsharp.net/)のようなものであればそれが可能です。 – stuartd

答えて

1

あなたのフォーマットでスタックトレースを使用してメソッド名を取得できます。

スタックトレース:出力するために使用

ロギングイベントのスタックトレース スタックトレースレベル指定子は、中括弧の間に囲まれてもよいです。 の例では、%stacktrace {level}です。スタックトレースレベル指定子が指定されていない場合は、 が指定され、1の場合、出力は次の形式を使用するとみなされます。type3.MethodCall3> type2.MethodCall2> type1.MethodCall1このパターンは、Compact Frameworkアセンブリの にはありません。

関連する問題