2015-10-19 251 views
1

我很好奇什麼是在Windows上記錄調試打印信息的最常用和/或可接受的方式。我沒有使用visual studio,並且正在編譯GCC。C++調試Windows上的日誌記錄

我習慣於在Android上開發,並使用logcat編寫和監視日誌。 是否有這樣的win32的東西?

編輯:

這是最常見的使用這樣的事情嗎?

https://msdn.microsoft.com/en-us/library/6xkxyz08.aspx

+0

問題要求推薦一些東西不幸是不合時宜的... – Petr

+0

['std :: clog'](http://en.cppreference.com/w/cpp/io/clog)?例如,您可以使用[此技術](https://stackoverflow.com/a/10151286/865719)將其輸出重定向到一個文件。 – 865719

+0

你想寫簡單的文本消息到文件? [Windows不這樣做](https://msdn.microsoft.com/en-us/library/windows/desktop/aa385780.aspx)。儘管如此,可能有一百萬個記錄器實用程序。我知道沒有統治性的,白色支持的日誌軟件包。 – user4581301

回答

1

雖然它不提供過濾的附加功能和日常/尺寸側翻OutputDebugString是一個很好的API,允許您發送調試日誌消息。

輸出可以檢索並顯示一個特殊的程序,當程序沒有啓動時,輸出會被忽略。

瞭解更多關於它在這篇文章中:How to view output of OutputDebugString?(相同的API調用可以從C中使用的++)

根據輸出的大小,你可能想使用的Windows事件日誌或類似 http://log4cpp.sourceforge.net/日誌框架

+0

我該如何使用它?我需要什麼庫來使用它? – ScottF

+0

OutputDebugString是對Windows的內置API調用,因此不需要額外的庫 – Marged

+0

它不適用於我。我必須包含「windows.h」 – ScottF

0

登錄Windows的標準基礎結構是Event Tracing。它是在OS的所有部分可用的(和使用),都是由用戶模式應用程序和內核模式的模塊:

目的
Windows事件跟蹤(ETW)提供應用程序的程序員開始的能力和停止事件跟蹤會話,檢測應用程序以提供跟蹤事件,並消耗跟蹤事件。跟蹤事件包含事件頭和提供者定義的數據,用於描述應用程序或操作的當前狀態。您可以使用這些事件來調試應用程序並執行容量和性能分析。

在適用
使用ETW當你想儀應用程序,用戶登錄或內核事件記錄到日誌文件,消耗從日誌文件或實時的事件。

開發商觀衆
ETW是專爲誰寫的用戶模式應用程序C和C++開發人員。

運行時間要求
ETW包含在Microsoft Windows 2000及更高版本。