summaryrefslogtreecommitdiff
path: root/kernel/io/logger/base.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/io/logger/base.h')
-rw-r--r--kernel/io/logger/base.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/kernel/io/logger/base.h b/kernel/io/logger/base.h
new file mode 100644
index 0000000..7aa9e2d
--- /dev/null
+++ b/kernel/io/logger/base.h
@@ -0,0 +1,31 @@
+#ifndef HOS_IO_BASE_H
+#define HOS_IO_BASE_H
+
+namespace hos::io
+{
+ enum log_level
+ {
+ DEBUG,
+ INFO,
+ WARN,
+ ERROR,
+ FATAL
+ };
+
+ /// Ah, the glorious CRTP...
+ template <typename concrete_logger>
+ class logger
+ {
+ public:
+ logger (enum log_level level);
+
+ void set_level (enum log_level level);
+ void write (enum log_level level, const char *message, ...);
+ protected:
+ char buffer[512];
+ private:
+ enum log_level level;
+ };
+}
+
+#endif