Использование log4cxx с библиотекой Qt

Добрый день, ребята,

Я работаю над проектом, который использует библиотеку Qt в Visual Studio 2008. В этом проекте я использую log4cxx 0.10.0, который работает нормально. Однако я не могу отобразить его в консоли (это проекты). Я считаю, что причина в том, что это приложение win32.

Любой, кто знаком с log4j (cxx), знает, что есть файл свойств для настройки.

В этом файле он записывается на консоль, но ничего не отображается. .Cmd не будет появляться, как другие написанные мной программы, и не будет отображаться в консоли VS, как qDebug ().

Любые идеи о том, как это исправить?

0

Решение

QDebug вероятно пишет в stderr, в то время как printf или ваши функции журнала подключены только к stdout,

Показать консоль в Visual Studio

У вас есть два разных способа показать черное окно консоли / терминала из 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);

Надеюсь, это поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]