renamed loggerhierarchy from mrw.gccfunctiontrace to mrw.fn
This commit is contained in:
@@ -9,6 +9,9 @@
|
|||||||
@license LGPL, see file <a href="license.html">COPYING</a>
|
@license LGPL, see file <a href="license.html">COPYING</a>
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.2 2005/04/07 20:42:38 marc
|
||||||
|
renamed loggerhierarchy from mrw.gccfunctiontrace to mrw.fn
|
||||||
|
|
||||||
Revision 1.1 2005/03/11 21:07:54 marc
|
Revision 1.1 2005/03/11 21:07:54 marc
|
||||||
initial version
|
initial version
|
||||||
|
|
||||||
@@ -92,7 +95,7 @@ extern "C" int main(int, char**);
|
|||||||
- optional: boost for thread support http://boost.org
|
- optional: boost for thread support http://boost.org
|
||||||
|
|
||||||
The logger hiararchy name is: @c
|
The logger hiararchy name is: @c
|
||||||
"mrw.gccfunctiontrace.<full-method-name>" where @c
|
"mrw.fn.<full-method-name>" where @c
|
||||||
<full-method-name> is the full name of the method, including
|
<full-method-name> is the full name of the method, including
|
||||||
namespace and class name, seperated not by double colon @c :: but
|
namespace and class name, seperated not by double colon @c :: but
|
||||||
by single dots @c . as it is common use in log4cxx. This way, you
|
by single dots @c . as it is common use in log4cxx. This way, you
|
||||||
@@ -111,15 +114,15 @@ extern "C" int main(int, char**);
|
|||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
log4j.rootLogger = OFF, A1
|
log4j.rootLogger = OFF, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace = DEBUG
|
log4j.logger.mrw.fn = DEBUG, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace.log4cxx = OFF
|
log4j.logger.mrw.fn.log4cxx = OFF, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace.boost = OFF
|
log4j.logger.mrw.fn.boost = OFF, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace.Thread = OFF
|
log4j.logger.mrw.fn.Thread = OFF, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace.mrw = OFF
|
log4j.logger.mrw.fn.mrw = OFF, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace.std = OFF
|
log4j.logger.mrw.fn.std = OFF, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace.new = OFF
|
log4j.logger.mrw.fn.new = OFF, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace.CppUnit = OFF
|
log4j.logger.mrw.fn.CppUnit = OFF, A1
|
||||||
log4j.logger.mrw.gccfunctiontrace.__gnu_cxx = OFF
|
log4j.logger.mrw.fn.__gnu_cxx = OFF, A1
|
||||||
log4j.appender.A1 = org.apache.log4j.FileAppender
|
log4j.appender.A1 = org.apache.log4j.FileAppender
|
||||||
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
|
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
|
||||||
log4j.appender.A1.layout.ConversionPattern = %t-%-41c%m%n
|
log4j.appender.A1.layout.ConversionPattern = %t-%-41c%m%n
|
||||||
@@ -131,28 +134,29 @@ log4j.appender.A1.filename = filename.log
|
|||||||
information):
|
information):
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
mrw.gccfunctiontrace.anotherFunction \ anotherFunction()
|
mrw.fn.anotherFunction \ anotherFunction()
|
||||||
mrw.gccfunctiontrace.HalloWelt.fn1 \ HalloWelt::fn1()
|
mrw.fn.HalloWelt.fn1 \ HalloWelt::fn1()
|
||||||
mrw.gccfunctiontrace.HalloWelt.fn \ HalloWelt::fn()
|
mrw.fn.HalloWelt.fn \ HalloWelt::fn()
|
||||||
mrw.gccfunctiontrace.HalloWelt.A.method \ HalloWelt::A::method()
|
mrw.fn.HalloWelt.A.method \ HalloWelt::A::method()
|
||||||
mrw.gccfunctiontrace.HalloWelt.A.method / HalloWelt::A::method()
|
mrw.fn.HalloWelt.A.method / HalloWelt::A::method()
|
||||||
mrw.gccfunctiontrace.HalloWelt.A.method \ HalloWelt::A::method()
|
mrw.fn.HalloWelt.A.method \ HalloWelt::A::method()
|
||||||
mrw.gccfunctiontrace.HalloWelt.A.method / HalloWelt::A::method()
|
mrw.fn.HalloWelt.A.method / HalloWelt::A::method()
|
||||||
mrw.gccfunctiontrace.HalloWelt.fn / HalloWelt::fn()
|
mrw.fn.HalloWelt.fn / HalloWelt::fn()
|
||||||
mrw.gccfunctiontrace.HalloWelt.fn \ HalloWelt::fn()
|
mrw.fn.HalloWelt.fn \ HalloWelt::fn()
|
||||||
mrw.gccfunctiontrace.HalloWelt.A.method \ HalloWelt::A::method()
|
mrw.fn.HalloWelt.A.method \ HalloWelt::A::method()
|
||||||
mrw.gccfunctiontrace.HalloWelt.A.method / HalloWelt::A::method()
|
mrw.fn.HalloWelt.A.method / HalloWelt::A::method()
|
||||||
mrw.gccfunctiontrace.HalloWelt.A.method \ HalloWelt::A::method()
|
mrw.fn.HalloWelt.A.method \ HalloWelt::A::method()
|
||||||
mrw.gccfunctiontrace.HalloWelt.A.method / HalloWelt::A::method()
|
mrw.fn.HalloWelt.A.method / HalloWelt::A::method()
|
||||||
mrw.gccfunctiontrace.HalloWelt.fn / HalloWelt::fn()
|
mrw.fn.HalloWelt.fn / HalloWelt::fn()
|
||||||
mrw.gccfunctiontrace.HalloWelt.fn1 / HalloWelt::fn1()
|
mrw.fn.HalloWelt.fn1 / HalloWelt::fn1()
|
||||||
mrw.gccfunctiontrace.anotherFunction / anotherFunction()
|
mrw.fn.anotherFunction / anotherFunction()
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
@note The configurator is not installed automatically. If you
|
@note The configurator is not installed automatically. If you
|
||||||
want to trace e.g. on the console, you have to call @c
|
want to trace e.g. on the console, you have to call @c
|
||||||
log4cxx::BasicConfigurator::configure(); as first statement
|
log4cxx::BasicConfigurator::configure(); as first statement
|
||||||
in your @c main().
|
in your @c main(). @see @ref AutoInitLog4cxx if you also want to
|
||||||
|
automatically configure @c log4cxx.
|
||||||
|
|
||||||
@section AutoFunctionTraceThread Multithreading
|
@section AutoFunctionTraceThread Multithreading
|
||||||
|
|
||||||
@@ -189,7 +193,7 @@ extern "C" void __cyg_profile_func_enter(void *this_fn, void*) {
|
|||||||
std::string::size_type p(hierarchy.rfind(' ', hierarchy.find('<')));
|
std::string::size_type p(hierarchy.rfind(' ', hierarchy.find('<')));
|
||||||
if (p!=std::string::npos) hierarchy.erase(0, p+1);
|
if (p!=std::string::npos) hierarchy.erase(0, p+1);
|
||||||
log4cxx::Logger* logger
|
log4cxx::Logger* logger
|
||||||
(log4cxx::Logger::getLogger(_T("mrw.gccfunctiontrace.")+hierarchy));
|
(log4cxx::Logger::getLogger(_T("mrw.fn.")+hierarchy));
|
||||||
if (logger->isDebugEnabled()) {
|
if (logger->isDebugEnabled()) {
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss<<std::setw(2+mrw::info.level++)<<std::setfill(' ')
|
ss<<std::setw(2+mrw::info.level++)<<std::setfill(' ')
|
||||||
@@ -222,7 +226,7 @@ extern "C" void __cyg_profile_func_exit(void *this_fn, void*) {
|
|||||||
std::string::size_type p(hierarchy.rfind(' ', hierarchy.find('<')));
|
std::string::size_type p(hierarchy.rfind(' ', hierarchy.find('<')));
|
||||||
if (p!=std::string::npos) hierarchy.erase(0, p+1);
|
if (p!=std::string::npos) hierarchy.erase(0, p+1);
|
||||||
log4cxx::Logger* logger
|
log4cxx::Logger* logger
|
||||||
(log4cxx::Logger::getLogger(_T("mrw.gccfunctiontrace.")+hierarchy));
|
(log4cxx::Logger::getLogger(_T("mrw.fn.")+hierarchy));
|
||||||
if (logger->isDebugEnabled()) {
|
if (logger->isDebugEnabled()) {
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss<<std::setw(2+--mrw::info.level)<<std::setfill(' ')
|
ss<<std::setw(2+--mrw::info.level)<<std::setfill(' ')
|
||||||
|
@@ -9,6 +9,9 @@
|
|||||||
@license LGPL, see file <a href="license.html">COPYING</a>
|
@license LGPL, see file <a href="license.html">COPYING</a>
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.2 2005/04/07 20:42:38 marc
|
||||||
|
renamed loggerhierarchy from mrw.gccfunctiontrace to mrw.fn
|
||||||
|
|
||||||
Revision 1.1 2005/03/11 21:07:55 marc
|
Revision 1.1 2005/03/11 21:07:55 marc
|
||||||
initial version
|
initial version
|
||||||
|
|
||||||
@@ -78,23 +81,23 @@ namespace mrw {
|
|||||||
log4cxx::helpers::Properties properties;
|
log4cxx::helpers::Properties properties;
|
||||||
properties.setProperty("log4j.rootLogger",
|
properties.setProperty("log4j.rootLogger",
|
||||||
"OFF, A1");
|
"OFF, A1");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace",
|
properties.setProperty("log4j.logger.mrw.fn",
|
||||||
"DEBUG");
|
"DEBUG");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace.log4cxx",
|
properties.setProperty("log4j.logger.mrw.fn.log4cxx",
|
||||||
"OFF");
|
"OFF");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace.boost",
|
properties.setProperty("log4j.logger.mrw.fn.boost",
|
||||||
"OFF");
|
"OFF");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace.Thread",
|
properties.setProperty("log4j.logger.mrw.fn.Thread",
|
||||||
"OFF");
|
"OFF");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace.mrw",
|
properties.setProperty("log4j.logger.mrw.fn.mrw",
|
||||||
"OFF");
|
"OFF");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace.std",
|
properties.setProperty("log4j.logger.mrw.fn.std",
|
||||||
"OFF");
|
"OFF");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace.new",
|
properties.setProperty("log4j.logger.mrw.fn.new",
|
||||||
"OFF");
|
"OFF");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace.CppUnit",
|
properties.setProperty("log4j.logger.mrw.fn.CppUnit",
|
||||||
"OFF");
|
"OFF");
|
||||||
properties.setProperty("log4j.logger.mrw.gccfunctiontrace.__gnu_cxx",
|
properties.setProperty("log4j.logger.mrw.fn.__gnu_cxx",
|
||||||
"OFF");
|
"OFF");
|
||||||
properties.setProperty("log4j.appender.A1",
|
properties.setProperty("log4j.appender.A1",
|
||||||
"org.apache.log4j.FileAppender");
|
"org.apache.log4j.FileAppender");
|
||||||
@@ -102,12 +105,12 @@ namespace mrw {
|
|||||||
"org.apache.log4j.PatternLayout");
|
"org.apache.log4j.PatternLayout");
|
||||||
#ifdef _REENTRANT
|
#ifdef _REENTRANT
|
||||||
properties.setProperty("log4j.appender.A1.layout.ConversionPattern",
|
properties.setProperty("log4j.appender.A1.layout.ConversionPattern",
|
||||||
"%t-%-41c%m%n");
|
"%t-%-27c%m%n");
|
||||||
properties.setProperty("log4j.appender.A1.filename",
|
properties.setProperty("log4j.appender.A1.filename",
|
||||||
"mrwautofunctiontracelog4cxx_test-mt.log");
|
"mrwautofunctiontracelog4cxx_test-mt.log");
|
||||||
#else
|
#else
|
||||||
properties.setProperty("log4j.appender.A1.layout.ConversionPattern",
|
properties.setProperty("log4j.appender.A1.layout.ConversionPattern",
|
||||||
"%-41c%m%n");
|
"%-27c%m%n");
|
||||||
properties.setProperty("log4j.appender.A1.filename",
|
properties.setProperty("log4j.appender.A1.filename",
|
||||||
"mrwautofunctiontracelog4cxx_test.log");
|
"mrwautofunctiontracelog4cxx_test.log");
|
||||||
#endif
|
#endif
|
||||||
@@ -128,22 +131,22 @@ namespace mrw {
|
|||||||
}
|
}
|
||||||
void checkfile() {
|
void checkfile() {
|
||||||
mrw::RegExp match
|
mrw::RegExp match
|
||||||
("^mrw\\.gccfunctiontrace\\.anotherFunction ( ? ? ?)\\\\ anotherFunction\\(\\)\n"
|
("^mrw\\.fn\\.anotherFunction ( ? ? ?)\\\\ anotherFunction\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.fn1 \\1 \\\\ HalloWelt::fn1\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.fn1 \\1 \\\\ HalloWelt::fn1\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.fn \\1 \\\\ HalloWelt::fn\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.fn \\1 \\\\ HalloWelt::fn\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.A\\.method \\1 \\\\ HalloWelt::A::method\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.A\\.method \\1 \\\\ HalloWelt::A::method\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.A\\.method \\1 / HalloWelt::A::method\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.A\\.method \\1 / HalloWelt::A::method\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.A\\.method \\1 \\\\ HalloWelt::A::method\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.A\\.method \\1 \\\\ HalloWelt::A::method\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.A\\.method \\1 / HalloWelt::A::method\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.A\\.method \\1 / HalloWelt::A::method\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.fn \\1 / HalloWelt::fn\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.fn \\1 / HalloWelt::fn\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.fn \\1 \\\\ HalloWelt::fn\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.fn \\1 \\\\ HalloWelt::fn\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.A\\.method \\1 \\\\ HalloWelt::A::method\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.A\\.method \\1 \\\\ HalloWelt::A::method\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.A\\.method \\1 / HalloWelt::A::method\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.A\\.method \\1 / HalloWelt::A::method\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.A\\.method \\1 \\\\ HalloWelt::A::method\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.A\\.method \\1 \\\\ HalloWelt::A::method\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.A\\.method \\1 / HalloWelt::A::method\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.A\\.method \\1 / HalloWelt::A::method\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.fn \\1 / HalloWelt::fn\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.fn \\1 / HalloWelt::fn\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.HalloWelt\\.fn1 \\1 / HalloWelt::fn1\\(\\)\n"
|
"mrw\\.fn\\.HalloWelt\\.fn1 \\1 / HalloWelt::fn1\\(\\)\n"
|
||||||
"mrw\\.gccfunctiontrace\\.anotherFunction \\1/ anotherFunction\\(\\)\n$");
|
"mrw\\.fn\\.anotherFunction \\1/ anotherFunction\\(\\)\n$");
|
||||||
#ifdef _REENTRANT
|
#ifdef _REENTRANT
|
||||||
std::string log(mrw::File::read("mrwautofunctiontracelog4cxx_test-mt.log"));
|
std::string log(mrw::File::read("mrwautofunctiontracelog4cxx_test-mt.log"));
|
||||||
std::map<unsigned long, std::string> logs;
|
std::map<unsigned long, std::string> logs;
|
||||||
|
Reference in New Issue
Block a user