Skip to content

Commit

Permalink
fix log map
Browse files Browse the repository at this point in the history
  • Loading branch information
Megamouse committed Mar 30, 2020
1 parent 65370f2 commit 448fb3d
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 35 deletions.
2 changes: 1 addition & 1 deletion Utilities/Config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ void cfg::set_entry::from_default()

void cfg::log_entry::set_map(std::map<std::string, logs::level>&& map)
{
logs::set_channel_level_map(std::move(map));
m_map = std::move(map);
}

void cfg::log_entry::from_default()
Expand Down
26 changes: 16 additions & 10 deletions rpcs3/Emu/System.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1821,25 +1821,31 @@ s32 error_code::error_report(const fmt_type_info* sup, u64 arg, const fmt_type_i

void Emulator::ConfigureLogs()
{
const bool logs_were_silenced = m_logs_silenced;
m_logs_silenced = g_cfg.misc.silence_all_logs.get();
static bool was_silenced = false;

if (logs_were_silenced == m_logs_silenced)
{
return;
}
const bool silenced = g_cfg.misc.silence_all_logs.get();

if (m_logs_silenced)
if (silenced)
{
sys_log.notice("Disabling logging...");
if (!was_silenced)
{
sys_log.notice("Disabling logging...");
}

logs::silence();
}
else
{
logs::reset();
logs::set_channel_levels();
sys_log.notice("Logging enabled");
logs::set_channel_levels(g_cfg.log.get_map());

if (was_silenced)
{
sys_log.notice("Logging enabled");
}
}

was_silenced = silenced;
}

template <>
Expand Down
1 change: 0 additions & 1 deletion rpcs3/Emu/System.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ class Emulator final
bool m_force_global_config = false;
bool m_force_boot = false;
bool m_has_gui = true;
bool m_logs_silenced = false;

public:
Emulator() = default;
Expand Down
21 changes: 2 additions & 19 deletions rpcs3/util/logs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,14 +111,6 @@ namespace logs

// Messages for delayed listener initialization
std::vector<stored_message> messages;

// Map used for storing log levels per channel
std::map<std::string, logs::level> channel_level_map;

void set_map(std::map<std::string, logs::level>&& map)
{
channel_level_map = std::move(map);
};
};

static root_listener* get_logger()
Expand Down Expand Up @@ -216,23 +208,14 @@ namespace logs
}
}

void set_channel_levels()
void set_channel_levels(const std::map<std::string, logs::level>& map)
{
std::lock_guard lock(g_mutex);

for (auto&& pair : get_logger()->channel_level_map)
for (auto&& pair : map)
{
logs::set_level(pair.first, pair.second);
}
}

void set_channel_level_map(std::map<std::string, logs::level>&& map)
{
std::lock_guard lock(g_mutex);

get_logger()->set_map(std::move(map));
}

std::vector<std::string> get_channels()
{
std::vector<std::string> result;
Expand Down
5 changes: 1 addition & 4 deletions rpcs3/util/logs.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,7 @@ namespace logs
level get_level(const std::string&);

// Log level control: set specific channels to level::fatal
void set_channel_levels();

// Log level control: get channel level
void set_channel_level_map(std::map<std::string, logs::level>&& map);
void set_channel_levels(const std::map<std::string, logs::level>& map);

// Get all registered log channels
std::vector<std::string> get_channels();
Expand Down

0 comments on commit 448fb3d

Please sign in to comment.