aboutsummaryrefslogtreecommitdiff
path: root/tools/common/Log.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/common/Log.cpp')
-rw-r--r--tools/common/Log.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/common/Log.cpp b/tools/common/Log.cpp
new file mode 100644
index 0000000..4371a7d
--- /dev/null
+++ b/tools/common/Log.cpp
@@ -0,0 +1,59 @@
+#include "Log.h"
+
+#include "PsString.h"
+
+#include <iomanip>
+#include <stdarg.h>
+#include <stdio.h>
+
+///////////////////////////////////////////////////////////////////////////
+
+namespace Nv
+{
+namespace Blast
+{
+
+void fLogf(const char* format, ...)
+{
+ char buf[4096], *p = buf;
+ va_list args;
+ int n;
+
+ va_start(args, format);
+ //n = _vsnprintf(p, sizeof buf - 3, format, args);
+ n = vsprintf_s(p, sizeof(buf)-3, format, args);
+ va_end(args);
+
+ p += (n < 0) ? sizeof buf - 3 : n;
+
+ while (p > buf && isspace((unsigned char)p[-1]))
+ {
+ *--p = '\0';
+ }
+
+ *p++ = '\r';
+ *p++ = '\n';
+ *p = '\0';
+
+ fLog(buf, Log::TYPE_INFO);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+
+void Log::flushDeferredMessages()
+{
+ if (mDeferredMessages.size() == 0) return;
+
+ std::cout << std::endl;
+ for (std::vector<std::string>::iterator it = mDeferredMessages.begin(); it != mDeferredMessages.end(); ++it)
+ {
+ log(*it, mMinVerbosity);
+ }
+ mDeferredMessages.clear();
+}
+
+
+
+} // namespace Blast
+} // namespace Nv