使用log4cxx与Qt库
Using log4cxx with a Qt library
大家下午好
我正在做一个在Visual Studio 2008中使用Qt库的项目。在这个项目中,我使用log4cxx 0.10.0,它工作得很好。然而,我无法让它显示在(这个项目)控制台。我相信这是因为它是一个win32应用程序。
熟悉log4j(cxx)的人都知道有一个属性文件要配置。
在该文件中,我将其写入控制台,但没有显示任何内容。cmd不会像我写的其他程序那样弹出,也不会像qDebug()那样显示在VS控制台中。
关于如何去解决这个问题有什么想法吗?
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你正在写一个控制台程序,并为你制作一个。
在VS2010中调试Win32 MFC应用程序时显示控制台窗口
项目>属性>配置属性>链接器>系统>子系统
(这是在VS 2010中找到设置的导航,它可能与VS 2008略有不同)
从Windows (/SUBSYSTEM:WINDOWS)
到Console (/SUBSYSTEM:CONSOLE)
。
重定向stderr
或stdout
或者您可以尝试的第三个选项是将日志记录打印到stderr
,就像QDebug
一样。
FILE *myerr = freopen("error.log", "wb", stderr);
希望对你有帮助。
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用Qt C++计算类似Git的SHA1哈希
- Qt focusObjectChanged example?
- 如何在cpp文件之间切换窗口?在Qt中
- Qt和C++:将QLineEdit添加到QTabWidget中
- 从数据库实时显示QT c++中的数据
- Qt Quick-如何仅从c++代码与qml属性交互
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 如何在Qt中取消捕获字符串
- Qt SQLite没有查询或参数计数不匹配
- 使用log4cxx与Qt库