【问题标题】:log4cplus in VC++VC++ 中的 log4cplus
【发布时间】:2011-02-20 11:25:26
【问题描述】:

如何将 log4cplus 框架添加到 VC++ 下的现有项目中? 当我尝试这样做时,我收到链接器错误。我不知道如何解决它。 谢谢赫兹

【问题讨论】:

  • Error.doShow.. 你需要显示你得到的链接器错误。不明确的?找不到包含文件?

标签: c++ logging log4cplus


【解决方案1】:

在您的项目配置中,您需要将库添加到链接器设置中。不过,当我在这里时,让我简要介绍一下google-glog 库(Google 将其用于自己的日志记录)。您可以在 Google Logging (GLog) Documentation 页面上找到它的文档。与需要您在各处创建各种记录器的 Log4Cxx 不同,GLog 使用起来更简单一些。示例:

LOG(ERROR) << "An error occurred.";
LOG(DFATAL) << "This will kill the program in debug mode, but not regular mode.";

上面没有必要实例化“LOG”、“ERROR”或“DFATAL”。他们就在那里。它还包括一些不同的断言宏,如 CHECK、CHECK_NOTNULL 等,它们将检查特定条件是否为真,如果是,则 LOG(FATAL) 并带有有用的错误消息。

【讨论】:

  • 在每次调用日志操作时打开这个文件并关闭它。
  • 我没有看过实现,但这并不奇怪。调试时最糟糕的事情是应用程序在其日志被刷新之前崩溃。如果记录一个错误,通常它足够重要,值得显式刷新(也可能是显式 fsync)。人们总是可以使用 LOG_EVERY_N 来降低日志记录频率。对于不重要的事情,可以使用较低的日志记录级别,例如 LOG(INFO) 和 VLOG。
【解决方案2】:

我昨天开始评估 log4cplus。我在VC2010下下载并构建了库,没有任何问题。但是当你必须与你自己的代码链接时,它变得有点棘手,因为 lib 和 dll 文件分散在各处。我编辑了属性页以更改输出目录,以便我可以在一个目录中找到所有调试库和 dll,并在另一个目录中释放库和 dll。

另外,对于 log4cplus_dll 库,lib 的名称与 dll 不同。我在项目属性中修复了它。现在我可以正确链接并运行它了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多