2017-05-21 4 views
0

TraceSource/TraceListener를 사용하도록 프로젝트를 설정하고 기본 청취자를 추가하여 new ConsoleTraceListener()을 사용하여 데이터를 출력 창에 기록했습니다. 나는 모든 라인에 삐걱 거리는 접두어를 많이 사용하고있다. 이것을 막을 수있는 방법이 있습니까?.NET에서 TraceSource를 사용하여 발생하는 정크 접두사 방지

FluentFTP Verbose: 0 : InterNetwork: 123.123.123.123 
FluentFTP Verbose: 0 : 421 Too many connections (8) from this IP 
FluentFTP Verbose: 0 : Disposing FtpClient object... 
FluentFTP Information: 0 : QUIT 

내가 추적 단지 문자열 싶습니다 : 내가 사용

InterNetwork: 123.123.123.123 
421 Too many connections (8) from this IP 
Disposing FtpClient object... 
QUIT 

구문은 다음과 같습니다

private static readonly TraceSource m_traceSource = new TraceSource("FluentFTP") { 
    Switch = new SourceSwitch("sourceSwitch", "Verbose") { Level = SourceLevels.All } 
}; 
... 
m_traceSource.TraceEvent(TraceLevelTranslation(eventType), 0, message); 

편집 :이 질문에 here에 대한 답이있다 , herehere이지만 그 중 하나는 TraceListener를 수정할 수없는 사용 사례를 다루지 만, 오직 TraceSource.

+0

가능한 중복에 http : // 유래. co.kr/questions/12685581/tracelistener-headers-footers) – apocalypse

답변

1

TraceEvent를 호출하지 않고 추적 소스의 리스너를 명시 적으로 작성하여이 작업을 수행합니다. 기꺼이한다면, 다음 확장 메소드와 같은 것을 할 수 있습니다. 이 추적 수신기에 의해 발생하는 모든 예외를 먹고있다 참고 :

static object traceSync = new object(); 
static int traceMessageNumber; 
internal static void Emit(this TraceSource traceSource, TraceEventType eventType, string message, params object[ ] args) 
{ 
    try 
    { 
    lock (traceSync) 
    { 
     var msgNum = Interlocked.Increment(ref traceMessageNumber); 

     if (traceSource.Switch.ShouldTrace(eventType)) 
     { 
     //--> format your message like you want... 
     var msg = YourMessageFormatter(msgNum, message, args); 

     foreach (TraceListener listener in traceSource.Listeners) 
     { 
      try 
      { 
      listener.WriteLine(msg); 
      listener.Flush(); 
      } 
      catch { } 
     } 
     } 
    } 
    } 
    catch 
    { 
    //--> maybe we'll write an event log entry? 
    } 
} 

그런 다음 당신이 그것을 호출 할 수 있습니다 : [TraceListener에서 머리글 및 바닥 글] (의

m_TraceSource.Emit(TraceLevelTranslation(eventType), message); 
+0

고마워요! 내 문제를 해결 ... –