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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
#include <iostream>
#include <string>
#include "log4cplus/hierarchy.h"
#include "log4cplus/helpers/loglog.h"
#include "log4cplus/loggingmacros.h"
#include "log4cplus/configurator.h"
#include "log4cplus/initializer.h"
using namespace std;
using namespace log4cplus;
using namespace log4cplus::helpers;
int
main()
{
log4cplus::Initializer initializer;
{
BasicConfigurator::doConfigure ();
Logger root = Logger::getRoot ();
Hierarchy & hier = root.getHierarchy ();
Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("test"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test2"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest.a.b.c"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest.a"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest.a"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest.a.b.c"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest.a.b.c.d"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest.a.b.c"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest.a"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
logger = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest"));
log4cplus::tcout << "Logger name: " << logger.getName()
<< " Parent = " << logger.getParent().getName() << endl;
// Test that loggers exist.
LOG4CPLUS_ASSERT (root, hier.exists (LOG4CPLUS_TEXT ("test.subtest")));
LOG4CPLUS_ASSERT (root, hier.exists (LOG4CPLUS_TEXT ("test")));
// Test clearing hierarchy.
hier.clear ();
// Test that loggers have been removed from the hierarchy.
LOG4CPLUS_ASSERT (root,
! hier.exists (LOG4CPLUS_TEXT ("test.subtest")));
LOG4CPLUS_ASSERT (root, ! hier.exists (LOG4CPLUS_TEXT ("test")));
// Test that instantiation of logger with empty name returns
// the root logger.
LOG4CPLUS_ASSERT (root,
Logger::getInstance (LOG4CPLUS_TEXT ("")).getName ()
== Logger::getRoot ().getName ());
// Test for root logger existence.
LOG4CPLUS_ASSERT (root, hier.exists (LOG4CPLUS_TEXT ("")));
// Test disabling log level by name.
LOG4CPLUS_ASSERT (root, ! hier.isDisabled (WARN_LOG_LEVEL));
hier.disable (LOG4CPLUS_TEXT ("WARN"));
LOG4CPLUS_ASSERT (root, hier.isDisabled (WARN_LOG_LEVEL));
LOG4CPLUS_ERROR (root,
LOG4CPLUS_TEXT ("WARN log level and below are disabled")
LOG4CPLUS_TEXT (" and that is fine"));
LOG4CPLUS_WARN (root,
LOG4CPLUS_TEXT ("WARN log level and below are disabled")
LOG4CPLUS_TEXT (" and this should not be printed"));
// Test disabling log level by log level constant.
hier.enableAll ();
LOG4CPLUS_ASSERT (root, ! hier.isDisabled (WARN_LOG_LEVEL));
hier.disable (ERROR_LOG_LEVEL);
LOG4CPLUS_ASSERT (root, hier.isDisabled (WARN_LOG_LEVEL));
LOG4CPLUS_ERROR (root,
LOG4CPLUS_TEXT ("ERROR log level and below are disabled")
LOG4CPLUS_TEXT (" and this should not be printed"));
LOG4CPLUS_FATAL (root,
LOG4CPLUS_TEXT ("ERROR log level and below are disabled")
LOG4CPLUS_TEXT (" and this should still be printed"));
// Test disabling debug log level by disableDebug().
hier.disable (Hierarchy::DISABLE_OFF);
LOG4CPLUS_ASSERT (root, ! hier.isDisabled (DEBUG_LOG_LEVEL));
hier.disableDebug ();
LOG4CPLUS_ASSERT (root, hier.isDisabled (DEBUG_LOG_LEVEL));
// Test disabling info log level by disableInfo().
hier.enableAll ();
LOG4CPLUS_ASSERT (root, ! hier.isDisabled (INFO_LOG_LEVEL));
hier.disableInfo ();
LOG4CPLUS_ASSERT (root, hier.isDisabled (INFO_LOG_LEVEL));
LOG4CPLUS_ASSERT (root, ! hier.isDisabled (WARN_LOG_LEVEL));
// Test disabling of all log levels.
hier.enableAll ();
LOG4CPLUS_ASSERT (root, ! hier.isDisabled (FATAL_LOG_LEVEL));
hier.disableAll ();
LOG4CPLUS_ASSERT (root, hier.isDisabled (FATAL_LOG_LEVEL));
LOG4CPLUS_FATAL (root,
LOG4CPLUS_TEXT ("all log levels are disabled")
LOG4CPLUS_TEXT (" and this should not be printed"));
}
log4cplus::tcout << "Exiting main()..." << endl;
return 0;
}
|