2016-03-30 13 views
0

Ich möchte die Methode protokollieren, wo meine Log-Methode aufgerufen wird. Die Docs sagt, dass wir% Methode können die anrufende MethodeLog4net zum Protokollieren des Methodennamens

Methode

verwendet, um Ausgangs den Namen der Methode, wo die Protokollierung Anforderung ausgegeben wurde loggt sein.

WARNUNG Das Generieren der Informationen zum Anruferstandort ist extrem langsam. Seine Verwendung sollte vermieden werden, es sei denn, die Ausführungsgeschwindigkeit ist kein Problem.

Beachten Sie den Hinweis unten zur Verfügbarkeit von Informationen zum Anruferstandort.

habe ich versucht, das gleiche und die mir nur Fragezeichen

2016-03-30 22 geben: 44: 28.609 [9] INFO? Test

2016-03-30 22: 45: 48,059 [9] INFO? Test

Funktioniert es nicht oder es ist abgeschrieben?

Antwort

0

Ich bin mir nicht sicher, ob% Methode funktionieren sollte. Um den Namen der Aufrufermethode zu protokollieren, können Sie jedoch eine Erweiterungsmethode mit einem CallerMemberName-Attribut verwenden. Das würde so etwas wie funktionieren:

public static void InfoWithCaller(this ILog logger,string message,[CallerMemberName]string memberName = ""){ 
    logger.InfoFormat("Caller: {0}, "+message, memberName); 
} 

Und ist wahrscheinlich effizienter als die Methode% Methode, wenn Sie es zur Arbeit bekommen können.

Verwandte Themen