correcting HLT logging: the pointers of the objects are only printed in debug mode
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 7 Nov 2009 01:44:56 +0000 (01:44 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 7 Nov 2009 01:44:56 +0000 (01:44 +0000)
HLT/BASE/AliHLTComponent.cxx
HLT/BASE/AliHLTLogging.cxx
HLT/BASE/AliHLTLogging.h
HLT/BASE/AliHLTSystem.cxx
HLT/BASE/AliHLTTask.cxx

index 8c1da84..6264498 100644 (file)
@@ -2408,9 +2408,9 @@ int AliHLTComponent::LoggingVarargs(AliHLTComponentLogSeverity severity,
   // without problems. But at this point we face the problem with virtual members which
   // are not necessarily const.
   AliHLTComponent* nonconst=const_cast<AliHLTComponent*>(this);
-  AliHLTLogging::SetLogString("%s (%s, %p): ", 
+  AliHLTLogging::SetLogString(this, ", %p", "%s (%s_pfmt_): ", 
                              fChainId[0]!=0?fChainId.c_str():nonconst->GetComponentID(),
-                             nonconst->GetComponentID(), this);
+                             nonconst->GetComponentID());
   iResult=SendMessage(severity, originClass, originFunc, file, line, AliHLTLogging::BuildLogString(NULL, args, true /*append*/));
   va_end(args);
 
index 1f23458..28f970e 100644 (file)
@@ -302,13 +302,19 @@ const char* AliHLTLogging::BuildLogString(const char *format, va_list ap, bool b
   return fgAliHLTLoggingTarget.GetArray();
 }
 
-const char* AliHLTLogging::SetLogString(const char *format, ...)
+const char* AliHLTLogging::SetLogString(const void* p, const char* pfmt, const char *format, ...)
 {
   // see header file for class documentation
+  TString formatstr=format;
+  TString pstr; 
+#ifdef __DEBUG
+  pstr.Form(pfmt, p);
+#endif
+  formatstr.ReplaceAll("_pfmt_", pstr);
   va_list args;
   va_start(args, format);
 
-  const char* message=BuildLogString(format, args);
+  const char* message=BuildLogString(formatstr.Data(), args);
   va_end(args);
 
   return message;
index ad66f44..769fb07 100644 (file)
@@ -272,7 +272,7 @@ public:
    * @param format     format string of printf style
    * @return const char string with the formatted message 
    */
-  static const char* SetLogString(const char *format, ... );
+  static const char* SetLogString(const void* p, const char* pfmt, const char *format, ... );
 
   /**
    * Get parameter given by the external caller.
index 116032f..eb63d84 100644 (file)
@@ -1556,7 +1556,7 @@ int AliHLTSystem::LoggingVarargs(AliHLTComponentLogSeverity severity,
   va_start(args, line);
 
   if (!fName.IsNull())
-    AliHLTLogging::SetLogString("%s (%p): ", fName.Data(), this);
+    AliHLTLogging::SetLogString(this, " (%p)", "%s_pfmt_: ", fName.Data());
   iResult=SendMessage(severity, originClass, originFunc, file, line, AliHLTLogging::BuildLogString(NULL, args, !fName.IsNull() /*append if non empty*/));
   va_end(args);
 
index e3f8f2c..024b6db 100644 (file)
@@ -864,7 +864,7 @@ int AliHLTTask::LoggingVarargs(AliHLTComponentLogSeverity severity,
   va_list args;
   va_start(args, line);
 
-  AliHLTLogging::SetLogString("%s (%p): ", GetName(), this);
+  AliHLTLogging::SetLogString(this, " (%p)", "%s_pfmt_: ", GetName());
   iResult=SendMessage(severity, originClass, originFunc, file, line, AliHLTLogging::BuildLogString(NULL, args, true /*append*/));
   va_end(args);