반응형
추적 출력을 콘솔로 리디렉션
제가 VB에서 작은 일괄 처리 콘솔 앱을 만들고 있다고 가정해 보겠습니다.넷. 나는 앱을 다음과 같이 구성할 수 있기를 원합니다.
Sub WorkerMethod()
'Do some work
Trace.WriteLine("Work progress")
'Do more work
Trace.WriteLine("Another progress update")
'...
End Sub
Sub Main()
'Do any setup, like confirm the user wants to continue or whatever
WorkerMethod()
End Sub
사용 중인 참고 사항Trace
보다는Console
제 출력을 위해서요.작업자 방식이 다른 곳에서 호출될 수도 있고, 심지어 다른 어셈블리에서 생활할 수도 있는데, 여기에 다른 트레이스 청취자를 부착할 수 있기를 원하기 때문입니다.콘솔을 추적에 연결하려면 어떻게 해야 합니까?
단순 클래스를 정의하고(아래 그림 참조) Trace의 수신기 컬렉션에 인스턴스를 추가하여 이미 이 작업을 수행할 수 있지만, 이 작업을 수행할 수 있는 더 많은 허용 또는 기본 제공 방법이 있는지 궁금합니다.
Public Class ConsoleTrace
Inherits Diagnostics.TraceListener
Public Overloads Overrides Sub Write(ByVal message As String)
Console.Write(message)
End Sub
Public Overloads Overrides Sub WriteLine(ByVal message As String)
Console.WriteLine(message)
End Sub
End Class
다음을 exe의 .config 파일에 추가할 수 있습니다.
<?xml version="1.0"?>
<configuration>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="logListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="cat.log" />
<add name="consoleListener" type="System.Diagnostics.ConsoleTraceListener"/>
</listeners>
</trace>
</system.diagnostics>
</configuration>
파일 로깅에 관심이 있을 경우를 대비하여 TextWriter도 포함했습니다.
조엘,
앱 구성 방법 대신 이 작업을 수행할 수 있습니다.
Trace.Listeners.Add(new ConsoleTraceListener());
또는 앱이 작동하는 동안 수신기를 추가하거나 제거하는 작업을 관리하려면 다음과 같이 수행합니다.
ConsoleTraceListener listener = new ConsoleTraceListener();
Trace.Listeners.Add(listener);
Trace.WriteLine("Howdy");
Trace.Listeners.Remove(listener);
Trace.Close();
좋은 해결책이지만 동일한 호출 exe에서 다른 dll을 실행하고 있는 상황이 있으므로 호출 exe의 .config 파일을 수정하고 싶지 않습니다.각 dll이 추적 출력의 변경 사항을 처리하기를 원합니다.
충분히 쉽습니다.
Stream outResultsFile = File.Create ("output.txt");
var textListener = new TextWriterTraceListener (outResultsFile);
Trace.Listeners.Add (textListener);
물론 이렇게 하면 트레이스 출력이 "output.txt" 파일로 출력됩니다.
언급URL : https://stackoverflow.com/questions/198322/redirect-trace-output-to-console
반응형
'IT' 카테고리의 다른 글
SQL에서 HAVING과 WHERE의 차이점은 무엇입니까? (0) | 2023.05.18 |
---|---|
Postgres for Insert 문에서 UUID를 생성하시겠습니까? (0) | 2023.05.18 |
파일 인쇄, 첫 번째 X줄 건너뛰기, Bash로 (0) | 2023.05.18 |
Linux에서 포트가 열려 있는지 효율적으로 테스트합니까? (0) | 2023.05.18 |
Xcode 7 베타 경고:인터페이스 방향 및 시작 스토리보드 (0) | 2023.05.18 |