00001
00002
00003
00004 #include <log4cpp/Portability.hh>
00005
00006 #ifdef WIN32
00007 #include <windows.h>
00008 #endif
00009 #ifdef LOG4CPP_HAVE_UNISTD_H
00010 #include <unistd.h>
00011 #endif
00012
00013 #include <cstdlib>
00014
00015 #include <log4cpp/Category.hh>
00016 #include <log4cpp/Appender.hh>
00017 #include <log4cpp/OstreamAppender.hh>
00018 #include <log4cpp/FileAppender.hh>
00019 #include <log4cpp/Layout.hh>
00020 #include <log4cpp/BasicLayout.hh>
00021 #include <log4cpp/Priority.hh>
00022 #include <log4cpp/NDC.hh>
00023 #include <log4cpp/PatternLayout.hh>
00024
00025 #include <log4cpp/PropertyConfigurator.hh>
00026
00027 double calcPi()
00028 {
00029 double denominator = 3.0;
00030 double retVal = 4.0;
00031 long i;
00032 for (i = 0; i < 50000000l; i++)
00033 {
00034 retVal = retVal - (4.0 / denominator);
00035 denominator += 2.0;
00036 retVal = retVal + (4.0 /denominator);
00037 denominator += 2.0;
00038 }
00039 return retVal;
00040 }
00041
00042 int main(int argc, char* argv[])
00043 {
00044 try {
00045
00046
00047
00048 char* srcdir = std::getenv("srcdir");
00049 std::string initFileName;
00050 if (srcdir == NULL) {
00051 initFileName = "./testConfig.log4cpp.properties";
00052 }
00053 else {
00054 initFileName = std::string(srcdir) + "/testConfig.log4cpp.properties";
00055 }
00056 log4cpp::PropertyConfigurator::configure(initFileName);
00057 } catch(log4cpp::ConfigureFailure& f) {
00058 std::cout << "Configure Problem " << f.what() << std::endl;
00059 return -1;
00060 }
00061
00062 log4cpp::Category& root = log4cpp::Category::getRoot();
00063
00064 log4cpp::Category& sub1 =
00065 log4cpp::Category::getInstance(std::string("sub1"));
00066
00067 log4cpp::Category& sub2 =
00068 log4cpp::Category::getInstance(std::string("sub1.sub2"));
00069
00070 root.error("root error");
00071 root.warn("root warn");
00072 sub1.error("sub1 error");
00073 sub1.warn("sub1 warn");
00074
00075 calcPi();
00076
00077 sub2.error("sub2 error");
00078 sub2.warn("sub2 warn");
00079
00080 root.error("root error");
00081 root.warn("root warn");
00082 sub1.error("sub1 error");
00083 sub1.warn("sub1 warn");
00084
00085 #ifdef WIN32
00086 Sleep(3000);
00087 #else
00088 sleep(3);
00089 #endif
00090
00091 sub2.error("sub2 error");
00092 sub2.warn("sub2 warn");
00093 sub2.error("%s %s %d", "test", "vform", 123);
00094 sub2.warnStream() << "streamed warn";
00095
00096 sub2 << log4cpp::Priority::WARN << "warn2.." << "..warn3..value=" << 0
00097 << log4cpp::eol << "..warn4";
00098
00099 log4cpp::Category::shutdown();
00100
00101 return 0;
00102 }
00103