summaryrefslogtreecommitdiff
path: root/src/coreclr/hosts/coreconsole/logger.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/coreclr/hosts/coreconsole/logger.h')
-rw-r--r--src/coreclr/hosts/coreconsole/logger.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/coreclr/hosts/coreconsole/logger.h b/src/coreclr/hosts/coreconsole/logger.h
new file mode 100644
index 0000000000..af54205396
--- /dev/null
+++ b/src/coreclr/hosts/coreconsole/logger.h
@@ -0,0 +1,54 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+//
+// Logger for the CoreCLR host.
+// Relies on the SYSCRT and therefore cannot use C++ libraries.
+//
+
+class Logger {
+ bool m_isEnabled;
+ bool m_prefixRequired;
+ bool m_formatHRESULT;
+
+public:
+ Logger() :
+ m_isEnabled(true),
+ m_prefixRequired(true),
+ m_formatHRESULT(false) { }
+
+ ~Logger() { }
+
+ // Enables output from the logger
+ void Enable();
+
+ // Disables output from the logger
+ void Disable();
+
+
+ Logger& operator<< (bool val);
+ Logger& operator<< (short val);
+ Logger& operator<< (unsigned short val);
+ Logger& operator<< (int val);
+ Logger& operator<< (unsigned int val);
+#ifdef _MSC_VER
+ Logger& operator<< (long val);
+ Logger& operator<< (unsigned long val);
+#endif
+ Logger& operator<< (float val);
+ Logger& operator<< (double val);
+ Logger& operator<< (long double val);
+ Logger& operator<< (const wchar_t* val);
+ Logger& operator<< (Logger& ( *pf )(Logger&));
+ static Logger& endl ( Logger& log );
+ static Logger& hresult ( Logger& log);
+
+private:
+ void EnsurePrefixIsPrinted();
+};
+
+
+
+
+