[deploy] LogProvider supports filter by log level
This commit is contained in:
parent
d1c90ed4b0
commit
caaa86915d
|
|
@ -74,8 +74,30 @@ public:
|
||||||
//
|
//
|
||||||
// LogProvider
|
// LogProvider
|
||||||
//
|
//
|
||||||
|
LogProvider::LogProvider()
|
||||||
|
: level_(LogLevel::Debug)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
LogProvider::~LogProvider() {}
|
LogProvider::~LogProvider() {}
|
||||||
|
|
||||||
|
void LogProvider::Init() {}
|
||||||
|
|
||||||
|
void LogProvider::Flush() {}
|
||||||
|
|
||||||
|
void LogProvider::Write(LogLevel level, LogBuffer* msg)
|
||||||
|
{
|
||||||
|
if (level < level_)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this->WriteMessage(level, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LogProvider::SetLevel(LogLevel level)
|
||||||
|
{
|
||||||
|
level_ = level;
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(KGE_PLATFORM_WINDOWS)
|
#if defined(KGE_PLATFORM_WINDOWS)
|
||||||
void SetWindowConsoleColor(std::ostream& os, int foreground, int background)
|
void SetWindowConsoleColor(std::ostream& os, int foreground, int background)
|
||||||
{
|
{
|
||||||
|
|
@ -566,7 +588,7 @@ void Logger::Write(LogLevel level, std::streambuf* raw_msg)
|
||||||
for (auto provider : providers_)
|
for (auto provider : providers_)
|
||||||
{
|
{
|
||||||
buffer_.pubseekpos(0, std::ios_base::in);
|
buffer_.pubseekpos(0, std::ios_base::in);
|
||||||
provider->WriteMessage(level, &buffer_);
|
provider->Write(level, &buffer_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -149,11 +149,21 @@ class KGE_API LogProvider : public ObjectBase
|
||||||
public:
|
public:
|
||||||
virtual ~LogProvider();
|
virtual ~LogProvider();
|
||||||
|
|
||||||
virtual void Init() = 0;
|
virtual void Init();
|
||||||
|
|
||||||
|
virtual void Flush();
|
||||||
|
|
||||||
|
void Write(LogLevel level, LogBuffer* msg);
|
||||||
|
|
||||||
|
void SetLevel(LogLevel level);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
LogProvider();
|
||||||
|
|
||||||
virtual void WriteMessage(LogLevel level, LogBuffer* msg) = 0;
|
virtual void WriteMessage(LogLevel level, LogBuffer* msg) = 0;
|
||||||
|
|
||||||
virtual void Flush() = 0;
|
protected:
|
||||||
|
LogLevel level_;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -169,10 +179,11 @@ public:
|
||||||
|
|
||||||
void Init() override;
|
void Init() override;
|
||||||
|
|
||||||
void WriteMessage(LogLevel level, LogBuffer* msg) override;
|
|
||||||
|
|
||||||
void Flush() override;
|
void Flush() override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void WriteMessage(LogLevel level, LogBuffer* msg) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef std::ostream&(*ConsoleColor)(std::ostream&);
|
typedef std::ostream&(*ConsoleColor)(std::ostream&);
|
||||||
|
|
||||||
|
|
@ -192,10 +203,11 @@ public:
|
||||||
|
|
||||||
void Init() override;
|
void Init() override;
|
||||||
|
|
||||||
void WriteMessage(LogLevel level, LogBuffer* msg) override;
|
|
||||||
|
|
||||||
void Flush() override;
|
void Flush() override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void WriteMessage(LogLevel level, LogBuffer* msg) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::ofstream ofs_;
|
std::ofstream ofs_;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue