log4net을 사용하여 로깅 중이며 각 serice 메서드 호출에 고유 한 ID를 기록하려고합니다. 필자는 메서드 호출 내에서 서비스 호출간에 고유하지 않아도됩니다. wcf에서 사용할 수있는 ID가 내장되어 있습니까? 메서드 호출을 시작할 때 수동으로 GUID 또는 무언가를 만들고 싶지 않습니다.WCF 각 서비스 메서드 호출에 대한 고유 ID
wcfMethod(int x)
{
log("xxx");
somework
log("yyy");
}
private log(string message)
{
var frame = new StackFrame(1);
var method = frame.GetMethod();
var type = method.DeclaringType;
var name = method.Name;
var log = LogManager.GetLogger(type);
// LOG ID HERE
ThreadContext.Properties["MessageId"] = OperationContext.Current.IncomingMessageHeaders.MessageId; // SOMETHING HERE
}
나는 OperationContext.Current.IncomingMessageHeaders.MessageId를 시도했지만 항상 null입니다.
wcf 인스턴스 상관 관계에 대해 읽었지만 복잡한 메소드 (예 : 다른 메소드 호출에서 고유함)가 필요하지 않습니다.
많은 사람에게 도움이 될만한 사람이 있으면 알려 주시기 바랍니다. 미리 감사드립니다.
실제 식별자 밖에서이 식별자를 찾고 생성하는 것이 중요합니까? 그렇지 않으면'log' 메소드 호출에서 메소드로부터 그런 식별자를 전송할 것입니다. – CyberDude