FeatherMC/src/logging/Logger.h

44 lines
873 B
C
Raw Normal View History

2020-07-29 02:43:59 +01:00
#pragma once
namespace Feather::Logging
{
enum class Level
{
// Serious problems
ERROR = -2,
// Potential problems of note
WARNING = -1,
// General messages for end-users
INFO = 0,
// More advanced information for problem-solving
DEBUG = 1,
// Fine grained spew
TRACE = 2,
};
class Channel
{
};
extern Channel LOG_GENERAL;
class Logger
{
public:
void LogDirect(Channel channel, Level level, const char* message, ...);
};
extern Logger GlobalLogger;
}
#define Log_Msg( Channel, Message, Args... )
#define Log_Debug(Message, Args...)
#define Log_Info(Message, ...) Feather::Logging::GlobalLogger.LogDirect(Feather::Logging::LOG_GENERAL, Feather::Logging::Level::INFO, Message, ##__VA_ARGS__)
#define Log_Warn(Message, Args...)