官方网站GitHub:
https://github.com/log4cplus
https://github.com/log4cplus/log4cplus
最新版需要C++2017,罢了
我用的是C++11的一个tag版本: https://github.com/log4cplus/log4cplus/tree/REL_2_0_4
下载解压,VS2017打开msvc14里的log4cplus.sln文件,
设置编译环境:
QT混合
1 用CMake打开源码根目录
2 必须设置Unicode (所有工程:不管是log4cplus工程本身,还是其他任何用log4cplus的工程)
3 VS项目》属性》C/C++》语言》将WChar_t视为内置类型》否 (所有工程:不管是log4cplus工程本身,还是其他任何用log4cplus的工程)
4 QTCore-Dir C:/Qt/Qt5.11.2/5.11.2/msvc2017_64/lib/cmake/Qt5Core
5 设置LOG4CPLUS_QT5
异步模式开启
异步模式需要开启,不然多线程同时写日志会有问题
需要到
https://github.com/log4cplus/ThreadPool
把.h和.cpp文件下载下来,放到
E:\log4cplus\log4cplus-REL_2_0_4\threadpool 目录里
Catch-master
下载:Catch-master.zip 解压后,把文件夹中的内容复制到 log4cplus-REL_2_0_4\catch中
编译
编译log4cplus这个dll工程
生成对应的
log4cplusD.lib/dll
log4cplus.lib/dll
直接添加到工程中使用即可。
初始化
log4cplus::Initializer initializer;
log4cplus::SharedAppenderPtr rollingFileAppender(new log4cplus::RollingFileAppender(LOG4CPLUS_TEXT("My.log"), 5 * 1024 * 1024, 10, true, true));
rollingFileAppender->setName(LOG4CPLUS_TEXT("MyRollingFileAppender"));
log4cplus::SharedAppenderPtr asyncAppender(new log4cplus::AsyncAppender(rollingFileAppender, 100));
auto pattern = LOG4CPLUS_TEXT("[%D{%Y-%m-%d %A %p %H:%M:%S %q}] [%-5p] %m [%l] [%c] [%t]%n");
rollingFileAppender->setLayout(std::unique_ptr(new log4cplus::PatternLayout(pattern)));
log4cplus::Logger logger(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("MyLogger")));
logger.addAppender(asyncAppender);
退出log4cplus
//! Per threa