c++ - 基于 log4j 的记录器 : log4cpp vs log4cplus vs log4cxx

标签 c++ logging log4cxx log4cplus log4cpp

我想用一个以 log4j 为模型的记录器替换我当前记录 native C++ 代码的记录器。我打算让记录器创建一个格式化为 log4j 格式的日志,以便可以使用 Log4View 查看器查看它。

我正在寻找诸如每种方法的优缺点以及它们之间的差异等信息。

即任何已知的内存泄漏?任何可以报告的性能测试?有哪些已知问题需要考虑?

最佳答案

从我最初的研究中,我发现了以下内容:

Log4cxx: https://logging.apache.org/log4cxx/

  • 目前正在孵化 - 没有正式发布
  • 过去 12 年更新/错误修复一次,最后一次发布是 2008 年
  • 用户可以选择不同的日志级别 - TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL
  • 分层记录器
  • 可以异步记录
  • 支持多个附加程序
  • 用户可以选择启用或禁用记录器
  • 日志可以发送到不同的和多个输出目标
  • 用户选择的输出格式
  • 有据可查
  • 根据 Apache 许可证获得许可,这是一种由 Open Source Initiative 认证的开源许可证
  • 需要 Apache 可移植运行时 (APR)

Log4cplus: https://sourceforge.net/projects/log4cplus/

  • 定期更新/错误修复 - 最新版本是 2017 年 2 月
  • 用户可以选择不同的日志级别 - TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL
  • 分层记录器
  • 支持多线程应用程序,但从异步信号的处理程序中使用并不安全
  • 用户选择的输出格式:SimpleLayout、PatternLayout、TTCCLayout
  • 支持多个记录器
  • 没有很好的记录
  • 根据 Apache License V2.0 获得许可

Log4cpp: https://sourceforge.net/projects/log4cpp/

  • 错误修复大约每年一次,最后一次发布是 2016 年 8 月
  • 支持多线程应用程序
  • 没有明确的文档存在
  • 自 0.2.1 版起已根据 GNU 宽通用公共(public)许可证 (LGPL) 获得许可,在此之前已根据 GPL 发布。

关于c++ - 基于 log4j 的记录器 : log4cpp vs log4cplus vs log4cxx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36177395/

相关文章:

c++ - 必须将文件编译为不同扩展类型的原因

c++ - 了解 C++11 的 Lambda 中的 move 捕获

c++ - fork 和传递套接字 c++

python-3.x - 与 pytest 一起使用时禁用日志记录

c++ - 我在使用 log4cxx 时在 C++ 程序中遇到错误

log4cxx 在 ~Logger 上抛出异常

c++ - 在 noexcept 函数体中处理 std::optional 是否安全?

PHP和测试驱动开发-日志类测试

ruby-on-rails - Rails 7.1,记录到 STDOUT 和 log/Production.log

c++ - Log4Cxx sql server appender