一.简介
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。
使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、syslog和远程syslog服务器中。
更多介绍请阅读官网:
http://log4cpp.sourceforge.net/
二.编译
1.编译程序时记得加上 -llog4cpp -lpthread
log4cpp是线程安全的,调试多线程程序十分好用(多线程用printf调试听说会挂起线程,效率低下)
三.简单示例
log4app使用单例模式。
- Appender可以定位日志输出信息 ,如console,或保存到文件中
- Category可以有不同的输出种类,Root是根输出,可以创建子输出,分别对应到不同的输出位置。
- Layout是输出格式,其子类PatternLayout可以自定义
#include<iostream>
#include"log4cpp/Category.hh"
#include"log4cpp/FileAppender.hh"
#include"log4cpp/OstreamAppender.hh"
#include"log4cpp/Layout.hh"
#include"log4cpp/BasicLayout.hh"
#include"log4cpp/Priority.hh"
using namespace std;
int main(int argc,char *argv[]) {
log4cpp::Appender *appender1 = new log4cpp::OstreamAppender("console",&std::cout);
appender1->setLayout(new log4cpp::BasicLayout());
log4cpp::Appender *appender2 = new log4cpp::FileAppender("default","program.log");
appender2->setLayout(new log4cpp::BasicLayout());