Program: gdcm
Module: $RCSfile: gdcmDebug.cxx,v $
Language: C++
- Date: $Date: 2005/01/07 16:26:12 $
- Version: $Revision: 1.14 $
+ Date: $Date: 2005/01/13 22:30:11 $
+ Version: $Revision: 1.17 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
=========================================================================*/
-#include <iostream>
#include "gdcmDebug.h"
+#include <iostream>
namespace gdcm
{
/// warning message level to be displayed
-static int DebugLevel = -1;
+static bool DebugFlag = false;
+static bool DebugToFile = false;
+static std::ofstream DebugFile;
//-----------------------------------------------------------------------------
/**
* \brief Accessor
- * @param level Set the debug level
+ * @param flag Set the debug flag
*/
-void Debug::SetDebugLevel (int level)
+void Debug::SetDebugFlag (bool flag)
{
- DebugLevel = level;
+ DebugFlag = flag;
}
/**
- * \brief Verbose
- * @param level level
- * @param msg1 first message part
- * @param msg2 second message part
- */
-void Debug::Verbose(int level, const char *msg1, const char *msg2)
+ * \brief Accessor
+ * @param level Get the debug flag
+ */
+bool Debug::GetDebugFlag ()
{
- if (level > DebugLevel)
- {
- return ;
- }
- std::cerr << "gdcm::" << msg1 << ' ' << msg2 << std::endl;
+ return DebugFlag;
}
/**
- * \brief Error
- * @param test test
- * @param msg1 first message part
- * @param msg2 second message part
- */
-void Debug::Error(bool test, const char *msg1, const char *msg2)
+ * \brief Accessor
+ * @param flag Set the debug flag to redirect to file
+ */
+void Debug::SetDebugToFile (bool flag)
{
- if (!test)
- {
- return;
- }
- std::cerr << "gdcm::" << msg1 << ' ' << msg2 << std::endl;
- Exit(1);
+ DebugToFile = flag;
}
/**
- * \brief Error
- * @param msg1 first message part
- * @param msg2 second message part
- * @param msg3 Third message part
- */
-void Debug::Error(const char *msg1, const char *msg2,
- const char *msg3)
+ * \brief Accessor
+ * @param level Get the debug flag to redirect to file
+ */
+bool Debug::GetDebugToFile ()
{
- std::cerr << "gdcm::" << msg1 << ' ' << msg2 << ' ' << msg3
- << std::endl;
- Exit(1);
+ return DebugToFile;
}
/**
- * \brief Assert
- * @param level level
- * @param test test
- * @param msg1 first message part
- * @param msg2 second message part
- */
-void Debug::Assert(int level, bool test, const char *msg1,
- const char *msg2)
+ * \brief Accessor
+ * @param flag Set the debug flag to redirect to file
+ * Absolutely nothing is check. You have to pass in
+ * a correct filename
+ */
+void Debug::SetDebugFilename (std::string const& filename)
{
- if (level > DebugLevel)
- {
- return ;
- }
- if (!test)
- {
- std::cerr << "gdcm::" << msg1 << ' ' << msg2
- << std::endl;
- }
+ DebugToFile = true; // Just in case ...
+ DebugFlag = true; // Just in case ...
+ DebugFile.open( filename.c_str() );
}
-/**
- * \brief Exit
- * @param a return code
- */
-void Debug::Exit(int a)
+std::ofstream & Debug::GetDebugFile ()
{
- exit(a); // Found in #include <stdlib.h>
+ return DebugFile;
}
} // end namespace gdcm
+
+