summaryrefslogtreecommitdiff
path: root/common/LoggerImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/LoggerImpl.h')
-rw-r--r--common/LoggerImpl.h56
1 files changed, 16 insertions, 40 deletions
diff --git a/common/LoggerImpl.h b/common/LoggerImpl.h
index a07cead..35ac37a 100644
--- a/common/LoggerImpl.h
+++ b/common/LoggerImpl.h
@@ -1,5 +1,5 @@
#pragma once
-#include "Logger.h"
+#include "GFSDK_Logger.h"
#include <cstdarg>
#include <cstdio>
@@ -10,58 +10,34 @@ public:
LoggerWWSamples(nv::LogSeverity loggingLevel);
virtual ~LoggerWWSamples() = default;
- virtual void log(const char* text, nv::LogSeverity severity, const char* filename, int linenumber) override;
- virtual void log(const wchar_t* text, nv::LogSeverity severity, const wchar_t* filename, int linenumber) override;
+// virtual void log(const char* text, nv::LogSeverity severity, const char* filename, int linenumber) override;
+ virtual void log(nv::LogSeverity severity, const wchar_t* filename, int linenumber, const wchar_t* format, ...) override;
nv::LogSeverity getLoggingLevel();
void setLoggingLevel(nv::LogSeverity newLevel);
+ static LoggerWWSamples* GetInstance()
+ {
+ static LoggerWWSamples Instance;
+ return &Instance;
+ }
private:
nv::LogSeverity LoggingLevel;
};
-extern LoggerWWSamples* g_Logger;
-
-namespace wwsamples
-{
- inline void log(nv::LogSeverity severity, const char* filename, int linenumber, const char* format, ...)
- {
- if (g_Logger == nullptr)
- {
- g_Logger = new LoggerWWSamples();
- }
-
- if (g_Logger->getLoggingLevel() > severity)
- return;
-
- char buffer[1024];
-
- va_list args;
- va_start(args, format);
-#if NV_GCC_FAMILY
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
-#endif
- vsnprintf_s(buffer, sizeof(buffer), format, args);
-#if NV_GCC_FAMILY
-#pragma GCC diagnostic pop
-#endif
- va_end(args);
-
- g_Logger->log(buffer, severity, filename, linenumber);
- }
-}
-
+#ifndef NV_LOG
+// NOTE: This assumes we're using wide strings!
+#define WIDEWRAP2(s) L##s
+#define WIDEWRAP1(s) WIDEWRAP2(s)
-#ifndef NV_LOG
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_LOG(...) wwsamples::log(nv::LogSeverity::kInfo, __FILE__, __LINE__, __VA_ARGS__)
+#define NV_LOG(...) LoggerWWSamples::GetInstance()->log(nv::LogSeverity::kInfo, WIDEWRAP1(__FILE__), __LINE__, __VA_ARGS__)
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_WARN(...) wwsamples::log(nv::LogSeverity::kWarning, __FILE__, __LINE__, __VA_ARGS__)
+#define NV_WARN(...) LoggerWWSamples::GetInstance()->log(nv::LogSeverity::kWarning, WIDEWRAP1(__FILE__), __LINE__, __VA_ARGS__)
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_ERROR(...) wwsamples::log(nv::LogSeverity::kError, __FILE__, __LINE__, __VA_ARGS__)
+#define NV_ERROR(...) LoggerWWSamples::GetInstance()->log(nv::LogSeverity::kError, WIDEWRAP1(__FILE__), __LINE__, __VA_ARGS__)
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_FATAL(...) wwsamples::log(nv::LogSeverity::kFatal, __FILE__, __LINE__, __VA_ARGS__)
+#define NV_FATAL(...) LoggerWWSamples::GetInstance()->log(nv::LogSeverity::kFatal, WIDEWRAP1(__FILE__), __LINE__, __VA_ARGS__)
#endif \ No newline at end of file