summaryrefslogtreecommitdiffstats
path: root/wsd/Admin.cpp
diff options
context:
space:
mode:
authorGökay Şatır <gokaysatir@collabora.com>2020-11-15 15:23:54 +0300
committerAshod Nakashian <Ashod@users.noreply.github.com>2020-12-07 17:30:51 -0500
commitace1c23a99276d3bb1a8c4d16c4b5ff88b64a014 (patch)
tree6643c22c9b149b9ef943d17bd488efb1a852abf5 /wsd/Admin.cpp
parentSocket - re-work disposition to ensure we transfer sockets. (diff)
downloadonline-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.cpp36
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.
}
}