1 #include <stdio.h>
2 #include <iostream>
3 #include "log4cpp/FixedContextCategory.hh"
4 #include "log4cpp/Appender.hh"
5 #include "log4cpp/OstreamAppender.hh"
6 #include "log4cpp/Layout.hh"
7 #include "log4cpp/BasicLayout.hh"
8 #include "log4cpp/Priority.hh"
9 #include "log4cpp/NDC.hh"
10 
main(int argc,char ** argv)11 int main(int argc, char** argv) {
12     log4cpp::Appender* appender =
13         new log4cpp::OstreamAppender("default", &std::cout);
14 
15     log4cpp::Layout* layout = new log4cpp::BasicLayout();
16     appender->setLayout(layout);
17 
18     log4cpp::Category& root = log4cpp::Category::getRoot();
19     root.addAppender(appender);
20        root.setPriority(log4cpp::Priority::ERROR);
21 
22     log4cpp::FixedContextCategory sub1(std::string("sub1"), std::string("context1"));
23 
24     log4cpp::FixedContextCategory sub1_2(std::string("sub1"), std::string("context1_2"));
25 
26     log4cpp::FixedContextCategory sub2(std::string("sub1.sub2"), std::string("context2"));
27 
28     std::cout << " root priority = " << root.getPriority() << std::endl;
29     std::cout << " sub1 priority = " << sub1.getPriority() << std::endl;
30     std::cout << " sub2 priority = " << sub2.getPriority() << std::endl;
31 
32     root.error("root error");
33     root.warn("root warn");
34     sub1.error("sub1 error");
35     sub1.warn("sub1 warn");
36     sub1_2.error("sub1 error");
37     sub1_2.warn("sub1 warn");
38     sub2.error("sub2 error");
39     sub2.warn("sub2 warn");
40 
41     log4cpp::Category::getInstance(std::string("sub1")).
42                setPriority(log4cpp::Priority::INFO);
43 
44     std::cout << " root priority = " << root.getPriority() << std::endl;
45     std::cout << " sub1 priority = " << sub1.getPriority() << std::endl;
46     std::cout << " sub2 priority = " << sub2.getPriority() << std::endl;
47 
48     std::cout << "priority info" << std::endl;
49     root.error("root error");
50     root.warn("root warn");
51     sub1.error("sub1 error");
52     sub1.warn("sub1 warn");
53     sub2.error("sub2 error");
54     sub2.warn("sub2 warn");
55     sub2.error("%s %s %d", "test", "vform", 123);
56     sub2.warnStream() << "streamed warn";
57 
58     sub2 << log4cpp::Priority::WARN << "warn2.." << "..warn3..value=" << 0
59          << log4cpp::eol << "..warn4";
60 
61     log4cpp::Category::shutdown();
62 
63     return 0;
64 }
65