2017-12-30 93 views
0

SlimDX 라이브러리가 포함 된 WCF 콘솔 응용 프로그램이 있습니다. SlimDX는 System.Diagnostics.Debug의 'Write'메소드를 사용하여 로그를 출력합니다. 현재 콘솔에서이 로그를 볼 수 없습니다. SlimDX에서 출력물을 캡처하여 콘솔에 쓰고 싶습니다. 캡쳐 System.Diagnostics.Debug WCF 응용 프로그램의 출력

다음은 지금까지 (작동하지 않는) 내 구현 :

FileStream fs = new FileStream("C:/users/paulm/documents/output.txt", FileMode.Create); 

      Writer = new StreamWriter(fs); 
      System.Diagnostics.Debug.Listeners.Add(new System.Diagnostics.TextWriterTraceListener(Writer)); 

이 구현은 SlimDX의 출력을 캡처하지 않습니다. 내가 SlimDX의 출력을 캡처하기 위해 WRT의 WCF를 수정할 필요가 무엇인지에

#include "ObjectTable.h" 

#include "InternalHelpers.h" 

#include "ComObject.h" 



using namespace System; 

using namespace System::Text; 

using namespace System::Threading; 

using namespace System::Globalization; 

using namespace System::Collections::ObjectModel; 

using namespace System::Collections::Generic; 

using namespace System::Diagnostics; 



namespace SlimDX 

{ 

    static ObjectTable::ObjectTable() 

    { 

     m_Table = gcnew Dictionary<IntPtr, ComObject^>(); 

     m_Ancillary = gcnew Dictionary<IntPtr, List<ComObject^>^>(); 

     m_SyncObject = gcnew Object(); 



     AppDomain::CurrentDomain->DomainUnload += gcnew System::EventHandler(OnExit); 

     AppDomain::CurrentDomain->ProcessExit += gcnew System::EventHandler(OnExit); 

    } 



    ObjectTable::ObjectTable() 

    { 

    } 



    void ObjectTable::OnExit(Object^ sender, EventArgs^ e) 

    { 

     SLIMDX_UNREFERENCED_PARAMETER(sender); 

     SLIMDX_UNREFERENCED_PARAMETER(e); 



     String^ leakString = ReportLeaks(); 

     Debug::Write(leakString); // this is the output I would like to capture 

    } 

모든 통찰력 : 여기 SlimDX 소스 코드는?

답변

0

디버그 클래스에 지정되지 않은 경우 기본 추적 수신기가 있습니다. 따라서 Visual Studio의 출력 창에서 로그를 볼 수 있어야합니다. (Debug-> Windows-> Output) 그러나 릴리스 모드에 있으면 출력 창에 기록되지 않습니다. 디버그 모드에서 프로그램을 실행하거나 파일 상단에 "#define DEBUG"를 추가 한 다음 실행하십시오. 도움이 되었기를 바랍니다.