Добрый день, ребята,
Я работаю над проектом, который использует библиотеку Qt в Visual Studio 2008. В этом проекте я использую log4cxx 0.10.0, который работает нормально. Однако я не могу отобразить его в консоли (это проекты). Я считаю, что причина в том, что это приложение win32.
Любой, кто знаком с log4j (cxx), знает, что есть файл свойств для настройки.
В этом файле он записывается на консоль, но ничего не отображается. .Cmd не будет появляться, как другие написанные мной программы, и не будет отображаться в консоли VS, как qDebug ().
Любые идеи о том, как это исправить?
QDebug
вероятно пишет в stderr
, в то время как printf
или ваши функции журнала подключены только к stdout
,
У вас есть два разных способа показать черное окно консоли / терминала из Visual Studio:
Один: Visual C ++ Enable Console
Добавьте следующее куда-нибудь в своей программе, прежде чем начать печатать на консоли:
#include <stdio.h>
// ...
AllocConsole();
freopen("conin$","r",stdin);
freopen("conout$","w",stdout);
freopen("conout$","w",stderr);
// printf("Debugging Window:\n");
Или вы можете сказать Visual Studio, что вы пишете консольную программу и делаете ее для вас.
Показывать окно консоли при отладке приложения Win32 MFC в VS2010
Проект> Свойства> Свойства конфигурации> Компоновщик> Система> Подсистема
(Это навигация для поиска настроек в VS 2010, она может немного отличаться для VS 2008)
Меняться от Windows (/SUBSYSTEM:WINDOWS)
в Console (/SUBSYSTEM:CONSOLE)
,
stderr
или же stdout
Или третий вариант, который вы могли бы попробовать, — заставить свою регистрацию печатать на stderr
, как QDebug
,
http://cboard.cprogramming.com/c-programming/26852-stderr-vs-stdout.html
FILE *myerr = freopen("error.log", "wb", stderr);
Надеюсь, это поможет.
Других решений пока нет …