C++ log4cpp的使用


log4cpp官网

这里整理了需要使用到的基本内容

安装

从官网下载最新的库文件 下载地址

下载的文件名格式为 log4cpp-x.y.z.tar.gz

以下内容均在Linux中完成

版本信息

Linux version 5.3.0-46-generic (buildd@lcy01-amd64-013) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #38~18.04.1-Ubuntu

tar xzf log4cpp-x.y.z.tar.gz # 解压文件
cd log4cpp # 移动到文件目录
./configure
make
make check
# 此时如有提示(在Ubuntu20.04中)
# testDailyRollingFileAppender.cpp:235:7: error: ‘stime’
# was not declared in this scope; did you mean ‘ctime’?
# 则修改 log4cpp/tests/testDailyRollingFileAppender.cpp 文件中的 第235行 的
# if (stime(&now) == -1) { 
# 修改为
# if (ctime(&now) == NULL) { 
# 然后重新来一遍
make install # 可能需要sudo来提升权限

⚠️ 使用该库的C++程序,在编译时需要加上两个动态库 -llog4cpp -lpthread

​ 使用时如果提示找不到库文件,则需要 sudo vi /etc/ld.so.conf 在文件末尾加上动态库log4cpp的路径,默认安装的话填写 include /usr/local/lib

​ 填写完成后需要使用 sudo /sbin/ldconfig -v ,用来将 /etc/ld.so.conf 中列出的库文件缓存至 /etc/ld.so.cache 以供使用

测试是否安装成功

//test.cc 后面的看完了之后再看一遍这个有助于理解
#include <iostream>
#include <log4cpp/Category.hh>
#include <log4cpp/OstreamAppender.hh>
#include <log4cpp/BasicLayout.hh>
#include <log4cpp/Priority.hh>
using namespace std;

int main()
{
   
    log4cpp::OstreamAppender* osAppender = new log4cpp::OstreamAppender("osAppender",&cout);
    osAppender->setLayout(new log4cpp::BasicLayout());
    
    log4cpp::Category& root = log4cpp::Category::getRoot();
    root.addAppender(osAppender);
    root.setPriority(log4cpp::Priority::DEBUG);
    
    root.error("Hello log4cpp in a Error Message!");
    root.warn("Hello log4cpp in a Warning Message!");
    
    log4cpp::Category::shutdown();    
    return 0;
}

g++ -o test test.cc -llo

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值