C++ 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