[deploy] update Logger

This commit is contained in:
Nomango 2020-07-20 10:50:55 +08:00
parent d6f949d502
commit f560a78fc8
2 changed files with 13 additions and 13 deletions

View File

@ -85,7 +85,7 @@ void LogProvider::Init() {}
void LogProvider::Flush() {} void LogProvider::Flush() {}
void LogProvider::Write(LogLevel level, LogBuffer* msg) void LogProvider::Write(LogLevel level, const char* msg)
{ {
if (level < level_) if (level < level_)
return; return;
@ -209,7 +209,7 @@ void ConsoleLogProvider::Init()
{ {
} }
void ConsoleLogProvider::WriteMessage(LogLevel level, LogBuffer* msg) void ConsoleLogProvider::WriteMessage(LogLevel level, const char* msg)
{ {
if (level != LogLevel::Error) if (level != LogLevel::Error)
std::cout << GetColor(level) << msg << std::flush << ConsoleColorBrush<-1>; std::cout << GetColor(level) << msg << std::flush << ConsoleColorBrush<-1>;
@ -217,7 +217,7 @@ void ConsoleLogProvider::WriteMessage(LogLevel level, LogBuffer* msg)
std::cerr << GetColor(level) << msg << ConsoleColorBrush<-1>; std::cerr << GetColor(level) << msg << ConsoleColorBrush<-1>;
#if defined(KGE_PLATFORM_WINDOWS) #if defined(KGE_PLATFORM_WINDOWS)
::OutputDebugStringA(msg->GetRaw()); ::OutputDebugStringA(msg);
#endif #endif
} }
@ -260,7 +260,7 @@ FileLogProvider::~FileLogProvider()
void FileLogProvider::Init() {} void FileLogProvider::Init() {}
void FileLogProvider::WriteMessage(LogLevel level, LogBuffer* msg) void FileLogProvider::WriteMessage(LogLevel level, const char* msg)
{ {
if (ofs_) if (ofs_)
{ {
@ -509,8 +509,6 @@ Logger::Logger()
std::iostream& Logger::GetFormatedStream(LogLevel level, LogBuffer* buffer) std::iostream& Logger::GetFormatedStream(LogLevel level, LogBuffer* buffer)
{ {
std::lock_guard<std::mutex> lock(mutex_);
// reset buffer // reset buffer
buffer->Reset(); buffer->Reset();
@ -536,6 +534,8 @@ void Logger::Logf(LogLevel level, const char* format, ...)
if (level < level_) if (level < level_)
return; return;
std::lock_guard<std::mutex> lock(mutex_);
va_list args = nullptr; va_list args = nullptr;
va_start(args, format); va_start(args, format);
@ -586,8 +586,6 @@ void Logger::ResizeBuffer(size_t buffer_size)
void Logger::WriteToProviders(LogLevel level, LogBuffer* buffer) void Logger::WriteToProviders(LogLevel level, LogBuffer* buffer)
{ {
std::lock_guard<std::mutex> lock(mutex_);
// format footer // format footer
if (formater_) if (formater_)
{ {
@ -598,7 +596,7 @@ void Logger::WriteToProviders(LogLevel level, LogBuffer* buffer)
for (auto provider : providers_) for (auto provider : providers_)
{ {
buffer->pubseekpos(0, std::ios_base::in); buffer->pubseekpos(0, std::ios_base::in);
provider->Write(level, buffer); provider->Write(level, buffer->GetRaw());
} }
} }

View File

@ -155,14 +155,14 @@ public:
virtual void Flush(); virtual void Flush();
void Write(LogLevel level, LogBuffer* msg); void Write(LogLevel level, const char* msg);
void SetLevel(LogLevel level); void SetLevel(LogLevel level);
protected: protected:
LogProvider(); LogProvider();
virtual void WriteMessage(LogLevel level, LogBuffer* msg) = 0; virtual void WriteMessage(LogLevel level, const char* msg) = 0;
protected: protected:
LogLevel level_; LogLevel level_;
@ -184,7 +184,7 @@ public:
void Flush() override; void Flush() override;
protected: protected:
void WriteMessage(LogLevel level, LogBuffer* msg) override; void WriteMessage(LogLevel level, const char* msg) override;
private: private:
typedef std::ostream&(*ConsoleColor)(std::ostream&); typedef std::ostream&(*ConsoleColor)(std::ostream&);
@ -208,7 +208,7 @@ public:
void Flush() override; void Flush() override;
protected: protected:
void WriteMessage(LogLevel level, LogBuffer* msg) override; void WriteMessage(LogLevel level, const char* msg) override;
private: private:
std::ofstream ofs_; std::ofstream ofs_;
@ -319,6 +319,8 @@ inline void Logger::Log(LogLevel level, _Args&&... args)
if (level < level_) if (level < level_)
return; return;
std::lock_guard<std::mutex> lock(mutex_);
// build message // build message
auto& stream = this->GetFormatedStream(level, &this->buffer_); auto& stream = this->GetFormatedStream(level, &this->buffer_);
(void)std::initializer_list<int>{ ((stream << ' ' << args), 0)... }; (void)std::initializer_list<int>{ ((stream << ' ' << args), 0)... };