diff options
author | Pranam Lashkari <lpranam@collabora.com> | 2022-06-15 15:02:56 +0530 |
---|---|---|
committer | Pranam Lashkari <lpranam@collabora.com> | 2022-06-17 14:40:09 +0530 |
commit | 97c3631399643831a9492eb8629b978593cb6f83 (patch) | |
tree | 56725797518e7769724ac89fd11026e22c10c08a | |
parent | introduce unconditional logging method (diff) | |
download | online-backport/4908/distro/collabora/co-21-11.tar.gz online-backport/4908/distro/collabora/co-21-11.zip |
introduce user stats
backport/4908/distro/collabora/co-21-11
now logs can provide stats for the users each time they access a document
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I75d1637864b97c553285bc5d1850a8f75cd50d9f
-rw-r--r-- | coolwsd.xml.in | 1 | ||||
-rw-r--r-- | wsd/COOLWSD.cpp | 2 | ||||
-rw-r--r-- | wsd/DocumentBroker.cpp | 16 |
3 files changed, 19 insertions, 0 deletions
diff --git a/coolwsd.xml.in b/coolwsd.xml.in index e4f3af8104..9cecf2eb5d 100644 --- a/coolwsd.xml.in +++ b/coolwsd.xml.in @@ -88,6 +88,7 @@ <anonymization_salt type="uint" desc="The salt used to anonymize/obfuscate user-data in logs. Use a secret 64-bit random number." default="82589933">82589933</anonymization_salt> </anonymize> <docstats type="bool" desc="Enable to see document handling information in logs." default="false">false</docstats> + <userstats desc="Enable user stats. i.e: logs the details of a file and user" type="bool" default="false">false</userstats> </logging> <!-- diff --git a/wsd/COOLWSD.cpp b/wsd/COOLWSD.cpp index 5d5682ccc1..cd57eb6a5f 100644 --- a/wsd/COOLWSD.cpp +++ b/wsd/COOLWSD.cpp @@ -1768,6 +1768,8 @@ void COOLWSD::innerInitialize(Application& self) { "logging.file[@enable]", "false" }, { "logging.level", "trace" }, { "logging.lokit_sal_log", "-INFO-WARN" }, + { "logging.docstats", "false" }, + { "logging.userstats", "false" }, { "browser_logging", "false" }, { "mount_jail_tree", "true" }, { "net.connection_timeout_secs", "30" }, diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp index 7b10a63c8a..65ba649eb0 100644 --- a/wsd/DocumentBroker.cpp +++ b/wsd/DocumentBroker.cpp @@ -786,6 +786,22 @@ bool DocumentBroker::download(const std::shared_ptr<ClientSession>& session, con session->setDocumentOwner(true); } + if (config::getBool("logging.userstats", false)) + { + // using json because fetching details from json string is easier and will be consistent + Object::Ptr userStats = new Object(); + userStats->set("PostMessageOrigin", wopifileinfo->getPostMessageOrigin()); + userStats->set("UserID", COOLWSD::anonymizeUsername(userId)); + userStats->set("BaseFileName", wopiStorage->getFileInfo().getFilename()); + userStats->set("UserCanWrite", wopifileinfo->getUserCanWrite()); + + std::ostringstream ossUserStats; + userStats->stringify(ossUserStats); + const std::string userStatsString = ossUserStats.str(); + + LOG_ANY("User stats: " << userStatsString); + } + // Pass the ownership to client session session->setWopiFileInfo(wopifileinfo); } |