debug build off by default, started filtering of class names in HLT logging
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Jul 2007 19:36:29 +0000 (19:36 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Jul 2007 19:36:29 +0000 (19:36 +0000)
HLT/BASE/AliHLTLogging.cxx
HLT/BASE/AliHLTLogging.h
HLT/README
HLT/acinclude.m4

index 14d35d4..91de4fb 100644 (file)
@@ -75,6 +75,9 @@ AliHLTfctLogging AliHLTLogging::fgLoggingFunc=NULL;
 AliHLTLogging::AliHLTDynamicMessage AliHLTLogging::fgAliLoggingFunc=NULL;
 int AliHLTLogging::fgUseAliLog=1;
 
+TString AliHLTLogging::fgBlackList="";
+TString AliHLTLogging::fgWhiteList="";
+
 AliHLTLogging::~AliHLTLogging()
 {
   // see header file for class documentation
@@ -280,7 +283,7 @@ int AliHLTLogging::LoggingVarargs(AliHLTComponentLogSeverity severity,
   if (file==NULL && line==0) {
     // this is currently just to get rid of the warning "unused parameter"
   }
-  int iResult=CheckFilter(severity);
+  int iResult=1; //CheckFilter(severity); // check moved to makro
   if (iResult>0) {
     const char* separator="";
     TString origin;
@@ -344,3 +347,28 @@ AliHLTComponentLogSeverity AliHLTLogging::GetLocalLoggingLevel()
 
   return fLocalLogFilter;
 }
+
+int AliHLTLogging::CheckGroup(const char* originClass) const
+{
+  // see header file for class documentation
+
+  return 1;
+}
+
+int AliHLTLogging::SetBlackList(const char* classnames)
+{
+  // see header file for class documentation
+
+  if (classnames)
+    fgBlackList=classnames;
+  return 0;
+}
+
+int AliHLTLogging::SetWhiteList(const char* classnames)
+{
+  // see header file for class documentation
+
+  if (classnames)
+    fgWhiteList=classnames;
+  return 0;
+}
index a8b2337..c9c02c3 100644 (file)
@@ -2,7 +2,8 @@
 
 #ifndef ALIHLTLOGGING_H
 #define ALIHLTLOGGING_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+/* This file is property of and copyright by the ALICE HLT Project        * 
+ * ALICE Experiment at CERN, All rights reserved.                         *
  * See cxx source for full Copyright notice                               */
 
 /** @file   AliHLTLogging.h
@@ -35,11 +36,15 @@ class AliHLTComponentHandler;
 
 // the following macros are filtered by the Global and Local Log Filter
 #define HLTBenchmark( ... ) LoggingVarargs(kHLTLogBenchmark, Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
-#define HLTDebug( ... )     LoggingVarargs(kHLTLogDebug,     Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
-#define HLTInfo( ... )      LoggingVarargs(kHLTLogInfo,      Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
-#define HLTWarning( ... )   LoggingVarargs(kHLTLogWarning,   Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
-#define HLTError( ... )     LoggingVarargs(kHLTLogError,     Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
-#define HLTFatal( ... )     LoggingVarargs(kHLTLogFatal,     Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
+#ifdef __DEBUG
+#define HLTDebug( ... )     if (CheckFilter(kHLTLogDebug) && CheckGroup(Class_Name())) LoggingVarargs(kHLTLogDebug,     Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
+#else
+#define HLTDebug( ... )
+#endif
+#define HLTInfo( ... )      if (CheckFilter(kHLTLogInfo))    LoggingVarargs(kHLTLogInfo,      Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
+#define HLTWarning( ... )   if (CheckFilter(kHLTLogWarning)) LoggingVarargs(kHLTLogWarning,   Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
+#define HLTError( ... )     if (CheckFilter(kHLTLogError))   LoggingVarargs(kHLTLogError,     Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
+#define HLTFatal( ... )     if (CheckFilter(kHLTLogFatal))   LoggingVarargs(kHLTLogFatal,     Class_Name() , FUNCTIONNAME() , __FILE__ , __LINE__ , __VA_ARGS__ )
 
 // helper macro to set the keyword
 #define HLTLogKeyword(a)    AliHLTKeyword hltlogTmpkey__LINE__(this, a)
@@ -111,6 +116,26 @@ public:
                     const char* file, int line, ... ) const;
 
   /**
+   * Evaluate the group of the debug message from the class name.
+   * @return 1 if message should be printed
+   */
+  int CheckGroup(const char* originClass) const;
+
+  /**
+   * Set the black list of classes.
+   * If the white list is set, debug messages are skipped for
+   * all classes matching one of the regular expressions in the string.
+   */
+  static int SetBlackList(const char* classnames);
+
+  /**
+   * Set the white list of classes.
+   * If the white list is set, debug messages are only printed for
+   * classes matching one of the regular expressions in the string.
+   */
+  static int SetWhiteList(const char* classnames);
+
+  /**
    * Apply filter
    * @return 1 if message should pass
    */
@@ -214,8 +239,14 @@ private:
   
   /** the maximum size of the buffer */
   static const int fgkALIHLTLOGGINGMAXBUFFERSIZE;                  //! transient
+
+  /** groups of classes not to print debug messages */
+  static TString fgBlackList;                                      //! transient
+  
+  /** groups of classes not to print debug messages */
+  static TString fgWhiteList;                                      //! transient
   
-  ClassDef(AliHLTLogging, 2)
+  ClassDef(AliHLTLogging, 3)
 };
 
 /* the class AliHLTKeyword is a simple helper class used by the HLTLogKeyword macro
index 6507f2d..6356059 100644 (file)
@@ -1,6 +1,9 @@
 Package: ALICE HLT
 
-This package implements the ALICE High Level Trigger analysis framework.
+This package implements the ALICE High Level Trigger analysis framework
+and analysis component libraries. All files are property of and copyright
+by the ALICE HLT Project unless stated differently.
+
 All contributions are under the terms of the 
 GNU General Public License as published by the Free Software 
 Foundation. Also see files AUTHORS and THANKS.
@@ -43,6 +46,8 @@ of the AliRoot compilation.
 
  - \b TRD: The HLT code for TRD
 
+ - \b MUON: The HLT code for MUON
+
 2. Requirements
 ===============
 The package needs both ROOT and AliRoot. Both must be set up in the
@@ -137,6 +142,15 @@ Some important options (all options are on by default):
   --disable-trd              # disable compilation the TRD library
   --disable-aliroot-logging  # disable logging
 
+Debugging (default disabled)
+
+  --enable-debug             # enable debugging: symbols & messages
+
+Optimization (default -O2)
+
+  --disable-optimization     # disable compiler optimization
+  --enable-optimization<=l>  # enable compiler optimization level l
+
 5.5 External packages
 ---------------------
 PubSub framework: the TPC online display needs the HOMER interface, which
@@ -183,9 +197,9 @@ A wiki with detailed information is set up at
 Please include the following information into your request:
  - config.log from your build directory
  - output of the make process. Note: Redirect BOTH the stdout and stderr
-   channel to a log file. Redirection depends on the shell you are using:
-    bash: make 2>&1 | tee make.log 
-    csh: make |& tee make.log
+   channel to a log file. Redirection depends on the shell you are using:     <br>
+    bash: make 2>&1 | tee make.log                                            <br>
+    csh: make |& tee make.log                                                 <br>
    The 'tee' command just duplicates the output.
  - history of the commands you are using for compilation
    history > history.log
index 2aaa56e..93a7de9 100644 (file)
@@ -26,7 +26,7 @@ AC_DEFUN([AC_DEBUG],
   AC_MSG_CHECKING(whether to make debug objects)
   AC_ARG_ENABLE(debug,
     [AC_HELP_STRING([--enable-debug],[Enable debugging symbols in objects])],
-    [],[enable_debug=yes])
+    [],[enable_debug=no])
   if test "x$enable_debug" = "xno" ; then
     CFLAGS=`echo $CFLAGS | sed 's,-g,,'`
     CXXFLAGS=`echo $CXXFLAGS | sed 's,-g,,'`