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 소스 코드는?