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)11int 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