【问题标题】:log4j based loggers: log4cpp vs log4cplus vs log4cxx [closed]基于 log4j 的记录器:log4cpp vs log4cplus vs log4cxx [关闭]
【发布时间】:2016-07-10 16:45:22
【问题描述】:

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

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

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

【问题讨论】:

  • 您应该尝试这些日志框架并根据您的需要决定使用什么。换句话说,这是基于意见的问题,在这里是题外话。
  • 您为什么不能自己阅读他们的文档来研究支持的附加程序、多线程支持和许可等内容?

标签: c++ logging log4cxx log4cplus log4cpp


【解决方案1】:

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

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

  • 目前正在孵化 - 没有正式发布
  • 过去 12 年更新/错误修复一次,最后一次发布是 2008 年
  • 用户可以选择不同的日志级别 - TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL
  • 分层记录器
  • 可以异步记录
  • 支持多个附加程序
  • 用户可以选择启用或禁用记录器
  • 日志可以发送到不同的和多个输出目标
  • 用户选择的输出格式
  • 有据可查
  • 根据 Apache 许可证获得许可,该许可证是由 Open Source Initiative 认证的开源许可证
  • 需要 Apache Portable Runtime (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 宽松通用公共许可证 (LGPL) 获得许可,在此之前已根据 GPL 发布。

【讨论】:

  • log4cplus - 2016-01-16 是最新版本的 AFAIK。看这里sourceforge.net/projects/log4cplus/files/log4cplus-stable目前在GitHub上开发github.com/log4cplus/log4cplus
  • 我认为使用 log4cxx(或不使用)最重要的因素是它需要 Apache Portable Runtime (APR),也许这就是它最后一次发布是在 2008 年(版本 0.10.0)的原因)。到现在(2017 年),其他框架似乎正在积极开发中。
  • @Wolf,感谢您的评论,我检查了 Log4cxx、Log4cplus 和 Log4cpp 的最新版本并相应地更新了信息。如果这有帮助,请 +1 :)
  • :) 我已经表示我发现问答和问答都有帮助,尽管在 SO 上被认为是题外话。这个问题很常见,也不容易决定。顺便说一句:这里还有一个关于 Apache 版本的令人沮丧的声明 stackoverflow.com/a/13580525/2932052
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
相关资源
最近更新 更多