diff options
author | Gökay Şatır <gokaysatir@collabora.com> | 2020-11-15 15:23:54 +0300 |
---|---|---|
committer | Ashod Nakashian <Ashod@users.noreply.github.com> | 2020-12-07 17:30:51 -0500 |
commit | ace1c23a99276d3bb1a8c4d16c4b5ff88b64a014 (patch) | |
tree | 6643c22c9b149b9ef943d17bd488efb1a852abf5 /wsd/Admin.cpp | |
parent | Socket - re-work disposition to ensure we transfer sockets. (diff) | |
download | online-ace1c23a99276d3bb1a8c4d16c4b5ff88b64a014.tar.gz online-ace1c23a99276d3bb1a8c4d16c4b5ff88b64a014.zip |
Admin console log levels.
Now chosen log level is propagated to forkit and kits.
Also, admin console users can filter logs according to their channel names on client side.
Change-Id: Ife15a6148ed87533b81e9d63da252c633e74e559
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Diffstat (limited to 'wsd/Admin.cpp')
-rw-r--r-- | wsd/Admin.cpp | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/wsd/Admin.cpp b/wsd/Admin.cpp index 6c07f4918c..3cc0728042 100644 --- a/wsd/Admin.cpp +++ b/wsd/Admin.cpp @@ -603,42 +603,34 @@ unsigned Admin::getNetStatsInterval() std::string Admin::getChannelLogLevels() { - std::string result; - // Get the list of channels.. - std::vector<std::string> nameList; - Log::logger().names(nameList); - std::string levelList[9] = {"none", "fatal", "critical", "error", "warning", "notice", "information", "debug", "trace"}; + unsigned int wsdLogLevel = Log::logger().get("wsd").getLevel(); + std::string result = "wsd=" + levelList[wsdLogLevel]; - for (size_t i = 0; i < nameList.size(); i++) - { - result += (nameList[i] != "" ? nameList[i]: "?") + '=' + levelList[Log::logger().get(nameList[i]).getLevel()] + (i != nameList.size() - 1 ? " ": ""); - } + result += " kits=" + (_forkitLogLevel != "" ? _forkitLogLevel: levelList[wsdLogLevel]); return result; } -void Admin::setChannelLogLevel(const std::string& _channelName, std::string _level) +void Admin::setChannelLogLevel(const std::string& _channelName, std::string level) { assertCorrectThread(); - std::string levelList[9] = {"none", "fatal", "critical", "error", "warning", "notice", "information", "debug", "trace"}; - if (std::find(std::begin(levelList), std::end(levelList), _level) == std::end(levelList)) - { - _level = "trace"; - } - // Get the list of channels.. std::vector<std::string> nameList; Log::logger().names(nameList); - for (size_t i = 0; i < nameList.size(); i++) + std::string levelList[9] = {"none", "fatal", "critical", "error", "warning", "notice", "information", "debug", "trace"}; + if (std::find(std::begin(levelList), std::end(levelList), level) == std::end(levelList)) + level = "trace"; + + if (_channelName == "wsd") + Log::logger().get("wsd").setLevel(level); + else if (_channelName == "kits") { - if (nameList[i] == _channelName) - { - Log::logger().get(nameList[i]).setLevel(_level); - break; - } + LOOLWSD::setLogLevelsOfKits(level); // For current kits. + LOOLWSD::sendMessageToForKit("setloglevel " + level); // For forkit and future kits. + _forkitLogLevel = level; // We will remember this setting rather than asking forkit its loglevel. } } |