diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2007-05-03 00:32:44 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2007-05-03 00:32:44 +0000 |
| commit | 0c6eac6b8ca7d363288890eda1a98ce167987d48 (patch) | |
| tree | f37b5458200fe570d98d5052c44efa3237bffd5a /pokemod/Debug.cpp | |
| download | sigen-0c6eac6b8ca7d363288890eda1a98ce167987d48.tar.gz sigen-0c6eac6b8ca7d363288890eda1a98ce167987d48.tar.xz sigen-0c6eac6b8ca7d363288890eda1a98ce167987d48.zip | |
Initial import
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@1 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemod/Debug.cpp')
| -rw-r--r-- | pokemod/Debug.cpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/pokemod/Debug.cpp b/pokemod/Debug.cpp new file mode 100644 index 00000000..9790ea20 --- /dev/null +++ b/pokemod/Debug.cpp @@ -0,0 +1,87 @@ +/////////////////////////////////////////////////////////////////////////////
+// Name: Debug.cpp
+// Purpose: Define logging abilities for a PokéMod
+// Author: Ben Boeckel
+// Modified by: Ben Boeckel
+// Created: Wed Feb 14 23:44:39 2007
+// Copyright: ©2007 Ben Boeckel and Nerdy Productions
+// Licence:
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+/////////////////////////////////////////////////////////////////////////////
+
+#include "Debug.h"
+
+#ifdef PM_DEBUG
+
+// Declare an instance of the debug window
+#ifdef PM_DEBUG_OUTPUT_DEBUG
+debugWindow debug = new debugWindow();
+#endif
+
+extern int PMdebugLevel;
+
+void PokeMod::Log(const char *msg, int level)
+{
+ // Actual strings of the debugging levels
+ const char *PokeModDebugStr[8] = {"Emergency", "Alert", "Critical Error", "Error", "Warning", "Notice", "Info", "Debug"};
+ // Only log if wanted
+ if (level <= PMdebugLevel)
+ {
+ // Get the current time
+ time_t curTimeSec = time(NULL);
+ PMString curTime = asctime(localtime(&curTimeSec));
+ curTime.erase(curTime.find('\n'));
+ // Get the actual output message
+ PMString output("%s (%s): %s", PokeModDebugStr[level], curTime.c_str(), msg);
+ // Output to the command window
+# ifdef PM_DEBUG_OUTPUT_CONSOLE
+ std::cout << output << std::endl;
+# endif
+ // Output to the debugging console
+# ifdef PM_DEBUG_OUTPUT_DEBUG
+ if (debug.m_Show[level].IsChecked())
+ debug.m_Debug.Append(output);
+# endif
+ // Output to the debugging log
+# ifdef PM_DEBUG_OUTPUT_FILE
+ std::ofstream flog("PokeMod.log", std::ios::app);
+ // Output erros if the file fails
+ if (!flog)
+ {
+# ifdef PM_DEBUG_OUTPUT_CONSOLE
+ std::cout << "Alert (" << curTime << "): Unable to open log file!\n";
+# endif
+# ifdef PM_DEBUG_OUTPUT_DEBUG
+ debug.m_Debug.Append(String("Alert (%s): Unable to open log file!", curTime));
+# endif
+ }
+ else
+ {
+ flog << output << '\n';
+ flog.close();
+ }
+# endif
+ }
+}
+
+#else
+
+// Empty function if debugging isn't wanted
+void PokeMod::Log(const PokeMod::String &msg, int level)
+{
+ return;
+}
+
+#endif
|
