summaryrefslogtreecommitdiff
path: root/zen/debug_log.h
diff options
context:
space:
mode:
authorDaniel Wilhelm <daniel@wili.li>2014-04-18 17:15:16 +0200
committerDaniel Wilhelm <daniel@wili.li>2014-04-18 17:15:16 +0200
commitbd6336c629841c6db3a6ca53a936d629d34db53b (patch)
tree3721ef997864108df175ce677a8a7d4342a6f1d2 /zen/debug_log.h
parent4.0 (diff)
downloadFreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.tar.gz
FreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.tar.bz2
FreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.zip
4.1
Diffstat (limited to 'zen/debug_log.h')
-rw-r--r--zen/debug_log.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/zen/debug_log.h b/zen/debug_log.h
new file mode 100644
index 00000000..d8871ef9
--- /dev/null
+++ b/zen/debug_log.h
@@ -0,0 +1,82 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2011 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+
+#ifndef DEBUG_LOG_HEADER_017324601673246392184621895740256342
+#define DEBUG_LOG_HEADER_017324601673246392184621895740256342
+
+#include "zstring.h"
+
+cleanup this mess + remove any wxWidgets dependency!
+
+//small macro for writing debug information into a logfile
+#define WRITE_DEBUG_LOG(x) globalLogFile().write(getCodeLocation(__TFILE__, __LINE__) + x);
+//speed alternative: wxLogDebug(wxT("text")) + DebugView
+
+
+class DebugLog
+{
+public:
+ wxDEPRECATED(DebugLog(const wxString& filePrefix = wxString()))
+ prefix(filePrefix),
+ lineCount(0)
+ {
+ logfileName = assembleFileName();
+ logFile.Open(logfileName, wxFile::write);
+ }
+
+ void write(const std::string& logText)
+ {
+ todo;
+ }
+
+ void write(const wxString& logText)
+ {
+ ++lineCount;
+ if (lineCount % 50000 == 0) //prevent logfile from becoming too big
+ {
+ logFile.Close();
+ wxRemoveFile(logfileName);
+
+ logfileName = assembleFileName();
+ logFile.Open(logfileName, wxFile::write);
+ }
+
+ersetze wxDateTime::Now() durch eigene lib:
+ z.b. iso_time.h
+
+ logFile.Write(wxString(wxT("[")) + wxDateTime::Now().FormatTime() + wxT("] "));
+ logFile.Write(logText + LINE_BREAK);
+ }
+
+private:
+ wxString assembleFileName()
+ {
+ wxString tmp = wxDateTime::Now().FormatISOTime();
+ tmp.Replace(wxT(":"), wxEmptyString);
+ return prefix + wxString(wxT("DEBUG_")) + wxDateTime::Now().FormatISODate() + wxChar('_') + tmp + wxT(".log");
+ }
+
+ wxString logfileName;
+ wxString prefix;
+ int lineCount;
+ wxFile logFile; //logFile.close(); <- not needed
+};
+
+inline
+DebugLog& globalLogFile()
+{
+ static DebugLog inst; //external linkage despite header definition!
+ return inst;
+}
+
+inline
+wxString getCodeLocation(const wxString& file, int line)
+{
+ return wxString(file).AfterLast(FILE_NAME_SEPARATOR) + wxT(", LINE ") + toString<wxString>(line) + wxT(" | ");
+}
+
+
+#endif //DEBUG_LOG_HEADER_017324601673246392184621895740256342
bgstack15