commit
2579a7c03d
|
@ -100,18 +100,33 @@ LogManager::LogManager()
|
||||||
IniFile::Section* options = ini.GetOrCreateSection("Options");
|
IniFile::Section* options = ini.GetOrCreateSection("Options");
|
||||||
bool write_file;
|
bool write_file;
|
||||||
bool write_console;
|
bool write_console;
|
||||||
|
bool write_window;
|
||||||
options->Get("WriteToFile", &write_file, false);
|
options->Get("WriteToFile", &write_file, false);
|
||||||
options->Get("WriteToConsole", &write_console, true);
|
options->Get("WriteToConsole", &write_console, true);
|
||||||
|
options->Get("WriteToWindow", &write_window, true);
|
||||||
|
|
||||||
|
// Set up log listeners
|
||||||
|
int verbosity;
|
||||||
|
options->Get("Verbosity", &verbosity, 0);
|
||||||
|
|
||||||
|
// Ensure the verbosity level is valid
|
||||||
|
if (verbosity < 1)
|
||||||
|
verbosity = 1;
|
||||||
|
if (verbosity > MAX_LOGLEVEL)
|
||||||
|
verbosity = MAX_LOGLEVEL;
|
||||||
|
|
||||||
for (LogContainer* container : m_Log)
|
for (LogContainer* container : m_Log)
|
||||||
{
|
{
|
||||||
bool enable;
|
bool enable;
|
||||||
logs->Get(container->GetShortName(), &enable, false);
|
logs->Get(container->GetShortName(), &enable, false);
|
||||||
container->SetEnable(enable);
|
container->SetEnable(enable);
|
||||||
|
container->SetLevel(static_cast<LogTypes::LOG_LEVELS>(verbosity));
|
||||||
if (enable && write_file)
|
if (enable && write_file)
|
||||||
container->AddListener(LogListener::FILE_LISTENER);
|
container->AddListener(LogListener::FILE_LISTENER);
|
||||||
if (enable && write_console)
|
if (enable && write_console)
|
||||||
container->AddListener(LogListener::CONSOLE_LISTENER);
|
container->AddListener(LogListener::CONSOLE_LISTENER);
|
||||||
|
if (enable && write_window)
|
||||||
|
container->AddListener(LogListener::LOG_WINDOW_LISTENER);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_path_cutoff_point = DeterminePathCutOffPoint();
|
m_path_cutoff_point = DeterminePathCutOffPoint();
|
||||||
|
@ -149,7 +164,8 @@ void LogManager::LogWithFullPath(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE
|
||||||
LogTypes::LOG_LEVEL_TO_CHAR[(int)level], log->GetShortName().c_str(), temp);
|
LogTypes::LOG_LEVEL_TO_CHAR[(int)level], log->GetShortName().c_str(), temp);
|
||||||
|
|
||||||
for (auto listener_id : *log)
|
for (auto listener_id : *log)
|
||||||
m_listeners[listener_id]->Log(level, msg.c_str());
|
if (m_listeners[listener_id])
|
||||||
|
m_listeners[listener_id]->Log(level, msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LogManager::Init()
|
void LogManager::Init()
|
||||||
|
|
|
@ -86,7 +86,7 @@ class LogManager : NonCopyable
|
||||||
private:
|
private:
|
||||||
LogContainer* m_Log[LogTypes::NUMBER_OF_LOGS];
|
LogContainer* m_Log[LogTypes::NUMBER_OF_LOGS];
|
||||||
static LogManager* m_logManager; // Singleton. Ugh.
|
static LogManager* m_logManager; // Singleton. Ugh.
|
||||||
std::array<LogListener*, LogListener::NUMBER_OF_LISTENERS> m_listeners;
|
std::array<LogListener*, LogListener::NUMBER_OF_LISTENERS> m_listeners{};
|
||||||
size_t m_path_cutoff_point = 0;
|
size_t m_path_cutoff_point = 0;
|
||||||
|
|
||||||
LogManager();
|
LogManager();
|
||||||
|
|
|
@ -61,40 +61,6 @@ void CLogWindow::CreateGUIControls()
|
||||||
log_window->Get("y", &y, Parent->GetSize().GetY());
|
log_window->Get("y", &y, Parent->GetSize().GetY());
|
||||||
log_window->Get("pos", &winpos, wxAUI_DOCK_RIGHT);
|
log_window->Get("pos", &winpos, wxAUI_DOCK_RIGHT);
|
||||||
|
|
||||||
// Set up log listeners
|
|
||||||
int verbosity;
|
|
||||||
options->Get("Verbosity", &verbosity, 0);
|
|
||||||
|
|
||||||
// Ensure the verbosity level is valid
|
|
||||||
if (verbosity < 1)
|
|
||||||
verbosity = 1;
|
|
||||||
if (verbosity > MAX_LOGLEVEL)
|
|
||||||
verbosity = MAX_LOGLEVEL;
|
|
||||||
|
|
||||||
// Get the logger output settings from the config ini file.
|
|
||||||
options->Get("WriteToFile", &m_writeFile, false);
|
|
||||||
options->Get("WriteToWindow", &m_writeWindow, true);
|
|
||||||
|
|
||||||
IniFile::Section* logs = ini.GetOrCreateSection("Logs");
|
|
||||||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
|
||||||
{
|
|
||||||
bool enable;
|
|
||||||
logs->Get(m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), &enable, false);
|
|
||||||
|
|
||||||
if (m_writeWindow && enable)
|
|
||||||
m_LogManager->AddListener((LogTypes::LOG_TYPE)i, LogListener::LOG_WINDOW_LISTENER);
|
|
||||||
else
|
|
||||||
m_LogManager->RemoveListener((LogTypes::LOG_TYPE)i, LogListener::LOG_WINDOW_LISTENER);
|
|
||||||
|
|
||||||
if (m_writeFile && enable)
|
|
||||||
m_LogManager->AddListener((LogTypes::LOG_TYPE)i, LogListener::FILE_LISTENER);
|
|
||||||
else
|
|
||||||
m_LogManager->RemoveListener((LogTypes::LOG_TYPE)i, LogListener::FILE_LISTENER);
|
|
||||||
|
|
||||||
m_LogManager->SetLogLevel((LogTypes::LOG_TYPE)i, (LogTypes::LOG_LEVELS)(verbosity));
|
|
||||||
}
|
|
||||||
m_has_listeners = true;
|
|
||||||
|
|
||||||
// Font
|
// Font
|
||||||
m_FontChoice = new wxChoice(this, wxID_ANY);
|
m_FontChoice = new wxChoice(this, wxID_ANY);
|
||||||
m_FontChoice->Bind(wxEVT_CHOICE, &CLogWindow::OnFontChange, this);
|
m_FontChoice->Bind(wxEVT_CHOICE, &CLogWindow::OnFontChange, this);
|
||||||
|
|
|
@ -45,8 +45,8 @@ private:
|
||||||
wxTimer m_LogTimer;
|
wxTimer m_LogTimer;
|
||||||
LogManager* m_LogManager;
|
LogManager* m_LogManager;
|
||||||
std::queue<std::pair<u8, wxString>> msgQueue;
|
std::queue<std::pair<u8, wxString>> msgQueue;
|
||||||
bool m_writeFile, m_writeWindow, m_LogAccess;
|
bool m_LogAccess;
|
||||||
bool m_has_listeners = false;
|
bool m_has_listeners = true;
|
||||||
|
|
||||||
// Controls
|
// Controls
|
||||||
wxBoxSizer* sBottom;
|
wxBoxSizer* sBottom;
|
||||||
|
|
Loading…
Reference in New Issue