00001
00002
00003 #include <iostream>
00004 #include <log4cpp/HierarchyMaintainer.hh>
00005 #include "logging/Category.hpp"
00006
00007 using namespace RTT;
00008
00009 int main(int argc, char** argv)
00010 {
00011
00012 log4cpp::HierarchyMaintainer::set_category_factory(
00013 OCL::logging::Category::createOCLCategory);
00014
00015 std::string name = "org.test.c1";
00016
00017
00018 std::cout << "\nFrom category???\n";
00019 log4cpp::Category& category2 = log4cpp::Category::getInstance(name);
00020 std::cout << "category2 type " << typeid(category2).name() << std::endl;
00021 std::cout << "category2 ptype " << typeid(&category2).name() << std::endl;
00022
00023 OCL::logging::Category* category =
00024 dynamic_cast<OCL::logging::Category*>(&category2);
00025 if (0 != category)
00026 {
00027 std::cout << "category type " << typeid(*category).name() << std::endl;
00028 }
00029 else
00030 {
00031 std::cout << "Unable cast" << std::endl;
00032 }
00033
00034
00035 std::cout << "\nDirectly ...\n";
00036 category = dynamic_cast<OCL::logging::Category*>(
00037 &log4cpp::Category::getInstance(name));
00038 if (0 != category)
00039 {
00040 std::cout << "category type " << typeid(*category).name() << std::endl;
00041 }
00042 else
00043 {
00044 std::cout << "Unable cast" << std::endl;
00045 }
00046
00047
00048 std::cout << "\nThrough hierarchy maintainer ...\n";
00049 log4cpp::Category* p = log4cpp::HierarchyMaintainer::getDefaultMaintainer().getExistingInstance(name);
00050 std::cout << "category ptype " << typeid(p).name() << std::endl;
00051 std::cout << "category type " << typeid(*p).name() << std::endl;
00052 category = dynamic_cast<OCL::logging::Category*>(p);
00053 if (0 != category)
00054 {
00055 std::cout << "category type " << typeid(*category).name() << std::endl;
00056 }
00057 else
00058 {
00059 std::cout << "Unable cast" << std::endl;
00060 }
00061
00062 category = dynamic_cast<OCL::logging::Category*>(
00063 log4cpp::HierarchyMaintainer::getDefaultMaintainer().getExistingInstance(name));
00064 if (0 != category)
00065 {
00066 std::cout << "category type " << typeid(*category).name() << std::endl;
00067 }
00068 else
00069 {
00070 std::cout << "Unable cast" << std::endl;
00071 }
00072
00073 return 0;
00074 }