44 lines
873 B
C
44 lines
873 B
C
|
#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...)
|