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

log4j based loggers: log4cpp vs log4cplus vs log4cxx

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

我正在寻找信息,例如每个的 pros/cons 以及它们之间的差异。

即任何已知的内存泄漏?是否进行了任何可以报告的性能测试?应该考虑的任何已知问题?

根据我的初步研究,我发现了以下内容:

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

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

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

  • 常规 updates/bug 修复 - 上次发布是 2017 年 2 月
  • 用户可以 select select 不同的日志级别 – TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL
  • 分层记录器
  • 支持多线程应用程序,但从异步信号的处理程序中使用是不安全的
  • 用户 selected 输出格式:SimpleLayout、PatternLayout、TTCCLayout
  • 支持多个记录器
  • 没有很好的记录
  • 已获得 Apache License V2.0 许可

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

  • 错误修复大约每年一次,上次发布是 2016 年 8 月
  • 支持多线程应用程序
  • 不存在明确的文档
  • 从版本 0.2.1 开始根据 GNU Lesser General Public 许可证 (LGPL) 获得许可,之前已根据 GPL 发布。