0

各位下午好

我正在开发一个在 Visual Studio 2008 中使用 Qt 库的项目。在这个项目中,我使用的 log4cxx 0.10.0 运行良好。但是,我无法让它显示在(这个项目)控制台中。我相信原因与它是一个 win32 应用程序有关。

任何熟悉 log4j(cxx) 的人都知道有一个要配置的属性文件。

在该文件中,我将其写入控制台,但没有显示任何内容。.cmd 不会像我写的其他程序一样弹出,也不会像 qDebug() 那样显示在 VS 控制台中。

关于如何解决这个问题的任何想法?

4

1 回答 1

0

QDebug可能正在写入stderr, whileprintf或您的日志功能仅连接到stdout.

在 Visual Studio 中显示控制台

您有两种不同的方式来显示 Visual Studio 中的黑色控制台/终端窗口:

一:Visual C++启用控制台

在开始打印到控制台之前,在程序中的某处添加以下内容:

#include <stdio.h>

// ...

AllocConsole();
freopen("conin$","r",stdin);
freopen("conout$","w",stdout);
freopen("conout$","w",stderr);
// printf("Debugging Window:\n");

或者您可以告诉 Visual Studio 您正在编写一个控制台程序并为您制作一个。

VS2010调试Win32 MFC应用程序时显示控制台窗口

项目 > 属性 > 配置属性 > 链接器 > 系统 > 子系统

(这是在 VS 2010 中找到设置的导航,对于 VS 2008 可能有点不同)

从 更改Windows (/SUBSYSTEM:WINDOWS)Console (/SUBSYSTEM:CONSOLE)

重定向stderrstdout

或者您可以尝试的第三种选择是让您的日志记录打印到stderr,就像QDebug.

http://cboard.cprogramming.com/c-programming/26852-stderr-vs-stdout.html

FILE *myerr = freopen("error.log", "wb", stderr);

希望有帮助。

于 2013-05-22T17:00:37.087 回答