Skip to content

Commit

Permalink
Merge pull request #5607 from leoetlino/logging-fix
Browse files Browse the repository at this point in the history
Logging fixes
  • Loading branch information
shuffle2 committed Jun 27, 2017
2 parents ce4d514 + dd8dcdf commit 2579a7c
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 38 deletions.
18 changes: 17 additions & 1 deletion Source/Core/Common/Logging/LogManager.cpp
Expand Up @@ -100,18 +100,33 @@ LogManager::LogManager()
IniFile::Section* options = ini.GetOrCreateSection("Options");
bool write_file;
bool write_console;
bool write_window;
options->Get("WriteToFile", &write_file, false);
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)
{
bool enable;
logs->Get(container->GetShortName(), &enable, false);
container->SetEnable(enable);
container->SetLevel(static_cast<LogTypes::LOG_LEVELS>(verbosity));
if (enable && write_file)
container->AddListener(LogListener::FILE_LISTENER);
if (enable && write_console)
container->AddListener(LogListener::CONSOLE_LISTENER);
if (enable && write_window)
container->AddListener(LogListener::LOG_WINDOW_LISTENER);
}

m_path_cutoff_point = DeterminePathCutOffPoint();
Expand Down Expand Up @@ -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);

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()
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/Common/Logging/LogManager.h
Expand Up @@ -86,7 +86,7 @@ class LogManager : NonCopyable
private:
LogContainer* m_Log[LogTypes::NUMBER_OF_LOGS];
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;

LogManager();
Expand Down
34 changes: 0 additions & 34 deletions Source/Core/DolphinWX/LogWindow.cpp
Expand Up @@ -61,40 +61,6 @@ void CLogWindow::CreateGUIControls()
log_window->Get("y", &y, Parent->GetSize().GetY());
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
m_FontChoice = new wxChoice(this, wxID_ANY);
m_FontChoice->Bind(wxEVT_CHOICE, &CLogWindow::OnFontChange, this);
Expand Down
4 changes: 2 additions & 2 deletions Source/Core/DolphinWX/LogWindow.h
Expand Up @@ -45,8 +45,8 @@ class CLogWindow : public wxPanel, LogListener
wxTimer m_LogTimer;
LogManager* m_LogManager;
std::queue<std::pair<u8, wxString>> msgQueue;
bool m_writeFile, m_writeWindow, m_LogAccess;
bool m_has_listeners = false;
bool m_LogAccess;
bool m_has_listeners = true;

// Controls
wxBoxSizer* sBottom;
Expand Down

0 comments on commit 2579a7c

Please sign in to comment.