* libanthracite files are now all in lib/ * anthracite-bin + anthracite-api-bin files are now all in src/ * socket split into header and source properly
54 lines
1.4 KiB
C++
54 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <iostream>
|
|
#include <ostream>
|
|
#include <sstream>
|
|
|
|
namespace anthracite::log {
|
|
enum LOG_LEVEL {
|
|
LOG_LEVEL_NONE = 0,
|
|
LOG_LEVEL_ERROR = 1,
|
|
LOG_LEVEL_WARN = 2,
|
|
LOG_LEVEL_INFO = 3,
|
|
LOG_LEVEL_VERBOSE = 4,
|
|
LOG_LEVEL_DEBUG = 5
|
|
};
|
|
|
|
class Logger {
|
|
friend class LogBuf;
|
|
static enum LOG_LEVEL _level;
|
|
public:
|
|
|
|
Logger();
|
|
void initialize(enum LOG_LEVEL level);
|
|
};
|
|
|
|
|
|
class LogBuf : public std::stringbuf
|
|
{
|
|
std::string _tag;
|
|
std::ostream& _output_stream;
|
|
enum LOG_LEVEL _level;
|
|
public:
|
|
LogBuf(std::ostream& output_stream, const std::string& tag, enum LOG_LEVEL level);
|
|
int sync() override;
|
|
};
|
|
|
|
static class Logger logger{};
|
|
|
|
static class LogBuf errBuf{std::cerr, "EROR", LOG_LEVEL_ERROR};
|
|
static std::ostream err(&errBuf);
|
|
|
|
static class LogBuf warnBuf{std::cerr, "WARN", LOG_LEVEL_WARN};
|
|
static std::ostream warn(&warnBuf);
|
|
|
|
static class LogBuf infoBuf{std::cout, "INFO", LOG_LEVEL_INFO};
|
|
static std::ostream info(&infoBuf);
|
|
|
|
static class LogBuf verboseBuf{std::cout, "VERB", LOG_LEVEL_VERBOSE};
|
|
static std::ostream verbose(&verboseBuf);
|
|
|
|
static class LogBuf debugBuf{std::cout, "DEBG", LOG_LEVEL_DEBUG};
|
|
static std::ostream debug(&debugBuf);
|
|
};
|