diff options
Diffstat (limited to 'kernel/io/logger/base.h')
-rw-r--r-- | kernel/io/logger/base.h | 31 |
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 |