日志系统的使用

编译指令:g++ log4cppTest.cc -llog4cpp -lpthread

自定义布局

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <log4cpp/OstreamAppender.hh>//输出到文件
#include <log4cpp/PatternLayout.hh>
#include <log4cpp/Category.hh>
#include <log4cpp/Priority.hh>
#include <fstream>
using namespace std;
using namespace log4cpp;

void test(){
//设置布局
PatternLayout *ptn1 = new PatternLayout();
pth1->setConversionPattern("%d %c [%p] %m%n");

PatternLayout *ptn2 = new PatternLayout();
pth2->setConversionPattern("%d %c [%p] %m%n");


//创建目的地对象
ofstream ofs("res.txt")

//OstreamAppender *pos = new OstreamAppender("console",&cout);
OstreamAppender *pos = new OstreamAppender("console",&ofs);//也可以保存日志信息到文件
pos->setLayout(ptn1);

FileAppender *pfile = new FileAppender("file","wd.log");//第三个参数默认是ture表示以追加的方式写入文件
pfile->setLayout(ptn2);

//创建记录器
Category &sales = Category:getRoot().getInstance("salesDepart");
sales.setPriority(Priority::ERROR);
sales.addAppender(pos);
sales.addAppender(pfile);


//记录日志
sales.emerg("this is an emerg");
sales.fatal("this is an fatal");
sales.alert("this is an alert");
sales.crit("this is an crit");
sales.error("this is an error");
sales.warn("this is an warn");
sales.notice("this is an notice");
sales.info("this is an info");
sales.debug("this is an debug");

//日志系统退出时回收资源
Category::shutdown();
}


使用回卷文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <log4cpp/OstreamAppender.hh>//输出到文件
#include <log4cpp/PatternLayout.hh>
#include <log4cpp/Category.hh>
#include <log4cpp/Priority.hh>
//在这里加了一行
#include <log4cpp/RollingFileAppender.h>
using namespace std;
using namespace log4cpp;

void test(){
//设置布局
PatternLayout *ptn1 = new PatternLayout();
pth1->setConversionPattern("%d %c [%p] %m%n");

PatternLayout *ptn2 = new PatternLayout();
pth2->setConversionPattern("%d %c [%p] %m%n");

PatternLayout *ptn3 = new PatternLayout();
pth2->setConversionPattern("%d %c [%p] %m%n");


//创建目的地对象
ofstream ofs("res.txt")

//OstreamAppender *pos = new OstreamAppender("console",&cout);
OstreamAppender *pos = new OstreamAppender("console",&ofs);//也可以保存日志信息到文件
pos->setLayout(ptn1);

FileAppender *pfile = new FileAppender("file","wd.log");//第三个参数默认是ture表示以追加的方式写入文件
pfile->setLayout(ptn2);



//创建回卷文件目的地
RollingFileAppender * roll = new RollingFileAppender("rollingFile","rollingwd.log"5*10249);//第一个参数随便写,第二个参数是文件名,第三个参数是每个文件的大小,第四个参数是备份的个数
roll->setLayout(ptn3);

//创建记录器
Category &sales = Category:getRoot().getInstance("salesDepart");
sales.setPriority(Priority::ERROR);
sales.addAppender(pos);
sales.addAppender(pfile);
sales.addAppender(roll);


//记录日志
sales.emerg("this is an emerg");
sales.fatal("this is an fatal");
sales.alert("this is an alert");
sales.crit("this is an crit");
sales.error("this is an error");
sales.warn("this is an warn");
sales.notice("this is an notice");
sales.info("this is an info");
sales.debug("this is an debug");

//日志系统退出时回收资源
Category::shutdown();
}