问题标签 [log4cpp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
30946 浏览

c++ - 堵塞的意义何在?

我一直在想,堵塞有什么意义?据我所知, clog 与 cerr 相同,但具有缓冲功能,因此效率更高。通常stderr和stdout一样,所以clog和cout一样。这对我来说似乎很蹩脚,所以我想我一定是误解了它。如果我有日志消息发送到同一个地方,我有错误消息发送到(可能是 /var/log/messages 中的某些内容),那么我可能不会写太多(所以使用 non 不会丢失太多-缓冲 cerr)。根据我的经验,我希望我的日志消息是最新的(不是缓冲的),所以我可以帮助找到崩溃(所以我不想使用缓冲的阻塞)。显然我应该一直使用 cerr。

我希望能够在我的程序中重定向堵塞。重定向 cerr 会很有用,这样当我调用库例程时,我可以控制 cerr 和 clog 的去向。一些编译器可以支持这个吗?我刚刚检查了 DJGPP,stdout 被定义为 FILE 结构的地址,因此执行“stdout = freopen(...)”之类的操作是非法的。

  • 是否可以重定向 clog、cerr、cout、stdin、stdout 和/或 stderr?
  • clog 和 cerr 之间的唯一区别是缓冲吗?
  • 我应该如何实现(或找到)更强大的日志记录工具(请链接)?
0 投票
2 回答
8957 浏览

c++ - 在 Windows 中开始使用 log4cpp

我需要登录 C++ 应用程序。谷歌搜索了一段时间后,我决定使用 log4cpp。

  1. 这是一个安全的选择,还是有更好的选择?
  2. 如何使用 Windows XP、Visual Studio 2005 开始安装并将其导入我的应用程序?

TIA

0 投票
3 回答
3078 浏览

log4net - 来自 .net、用户模式和驱动程序的 ETW 跟踪

我们有一个应用程序,它的一部分位于 .net、c++ 用户模式和 C++ 驱动程序中。该应用程序分为几个可执行文件,这些可执行文件按需运行并使用 LPC 相互通信(进程在不同的会话中运行(winlogon))。

目前我们有一个家庭编写的日志服务,.net 和 c++ 用户模式通过发送 LPC 消息与之通信。驱动程序使用 DbgPrint 并且并不总是启用,因为它会导致代码运行速度慢 30%(我们有很多日志记录)。

我想把所有的日志都写在一个地方,最好不要自己写记录器(我喜欢 log4cpp 和 log4net)。要求是将所有可执行文件和驱动程序写入一个位置并具有最小的开销。

我已经读过 ETW 是可行的方法,但是我无法找到已经编写的记录器,它使用它,如 log4cpp 或 log4net。

所以基本上我的问题是,你知道是否已经实现了我可以使用的 log4cpp 和 log4net 的 ETW 附加程序?

0 投票
4 回答
5572 浏览

c++ - C++ 日志库设置

我已经尝试了大约 2 周来获得一个可以使用的日志库。我试过 Log4cxx、Log4cpp、log4cplus 和 boost.log。问题不在于这些都不适合我,而是我根本不知道如何让它们工作。我真的很想使用 log4cxx,因为我在工作中使用 log4j/logback,但是我无法获得任何基于 log4j 的库来构建。我已经能够构建和使用 boost 库,但是无论我尝试什么, boost.log 都会给我各种链接器错误。如果有人可以指导我获取分步指南以使这些库之一正常工作,我将不胜感激。另外,如果这很重要,我将使用 eclipse 作为我的 IDE。

0 投票
1 回答
3212 浏览

c++ - 如何使用 log4cpp 一次记录多个变量?

如何使用 log4cpp 记录多个字符串?

例如,如果我想将所有 argv 记录到 main:

线

不编译。显然,记录器不能作为ostream工作。什么是log4cpp 方式来记录这样的事情,最好是一次?

0 投票
4 回答
573 浏览

c++ - 使用 C++ 记录本地化的最佳方法

我正在从事一个跨国项目,其中日志的目标受众可能来自两个国家。因此,登录一种以上的语言变得越来越重要,我正在考虑在每次记录某些内容时根据语言写入 2 个不同的日志文件夹,但我也想知道是否有一些开箱即用的功能正在出现使用 log4cpp 之类的日志框架?

0 投票
1 回答
4049 浏览

c++ - 使用 cmake 将 log4cpp 库链接到项目

我正在尝试将 log4cpp 链接到我的项目。我使用 CMake,但我想不出办法。

Log4cpp 安装在 projectfolder/log4cpp/ 上(其中包含 bin/ include/ lib/ ...)

我使用以下 Findlog4cpp.cmake :

在我的 CMakeLists.txt 我称之为:

输出 :

然后当我运行 make 我有以下错误:

我只是在 common.h 中包含了标题(#include "log4cpp/xxx.hh")

我补充说,没有 log4cpp,所有构建和编译都可以正常工作(使用 cmake 然后 make)

任何帮助将不胜感激

0 投票
1 回答
4343 浏览

configuration - 如何以编程方式配置 log4cpp?

是否可以以编程方式配置 log4cpp?

我想通过提供以下配置文件来配置它。

0 投票
2 回答
2622 浏览

c++ - 尝试写入 Log4cpp 流时调试断言失败

我正在尝试通过以下方式使用 log4cpp 启用日志记录。

当我到达尝试将“测试”写入日志的行时,我得到一个显示“调试断言失败!”的崩溃。断言在 f:\dd\vctools\crt_bld_self_64_amd64\crt\src\write.c 第 67 行。失败的断言是

我已经创建了日志目录和 bar.log 文件以确保它存在。我还确认我的应用程序和库都是作为 64 位多线程调试 DLL 构建的。log4cpp 源中没有 64 位构建,所以我基于 32 位构建配置创建了一个。我正在使用最新版本的 log4cpp。

0 投票
1 回答
2220 浏览

c++ - 'long long long' 对于使用 log4cpp 的 GCC 来说太长了

我正在开发一个使用日志库 log4cpp 的 QT 应用程序。但是现在,在包含 log4pp 的头文件的地方,我得到了这个编译错误: 'long long long' is too long for GCC

当我找到这个错误的来源时,头文件 stdint.h 在这一行打开:

__MINGW_EXTENSION typedef long long int64_t;

谁能告诉我如何处理这个?