2015-10-19 4 views
1

Мне любопытно узнать, что является наиболее распространенным и/или принятым способом регистрации отладочной информации о печати для приложения win32 C++ для Windows. Я не использую визуальную студию и компилирую ее с помощью GCC.C++ debug logging on windows

Я привык к разработке на Android, а также записи и мониторинга журналов с помощью logcat. Есть ли что-то подобное для win32?

EDIT:

Это наиболее распространенный использовать что-то вроде этого?

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++)

В зависимости от размера выхода вы можете использовать Eventlog окна или рамки протоколирования как http://log4cpp.sourceforge.net/

+0

Как его использовать? Какую библиотеку мне нужно использовать? – ScottF

+0

OutputDebugString - это встроенный вызов API для Windows, поэтому дополнительная библиотека не нужна – Marged

+0

Это не сработало для меня. Мне пришлось включить «windows.h» – ScottF

0

Стандартная инфраструктура для регистрации в Windows - Event Tracing. Он доступен (и используется) во всех частях ОС, как с помощью пользовательского режима применения и режима ядра модулей:

Назначение
Event Tracing для Windows (ETW) предоставляет прикладным программистам возможность запуска и останавливать сеансы отслеживания событий, применять приложение для обеспечения событий трассировки и использовать события трассировки. События трассировки содержат заголовок события и данные, определенные поставщиком, которые описывают текущее состояние приложения или операции. Вы можете использовать события для отладки приложения и анализа производительности и производительности.

Где применимо
Использование ETW, если вы хотите, чтобы инструмент приложения, журнал пользователя или события ядра в лог-файл, и потреблять события из файла журнала или в режиме реального времени.

аудитория Разработчик
ETW предназначен для C и C++ разработчиков, пишущих приложения пользовательского режима.

требования времени выполнения
ETW входит в Microsoft Windows 2000 и более поздних версий.