[{"id":22548,"web_url":"https://patchwork.libcamera.org/comment/22548/","msgid":"<YkbuLA4QtOLLEA4s@pendragon.ideasonboard.com>","date":"2022-04-01T12:21:00","subject":"Re: [libcamera-devel] [PATCH] libcamera: base: log: Use emoji's in\n\tlog output","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"(^_^)/ Kieran,\n\n(^人^)\n\nOn Fri, Apr 01, 2022 at 10:03:09AM +0100, Kieran Bingham via libcamera-devel wrote:\n> Our debug logs are already growing terse and difficult to parse with the\n> eye. The specific notifications can easily blend into each other.\n> \n> Add some highlight and colour to the log messages by replacing\n> the log severity levels with emoji characters which convey\n> the same meaning but in much less space.\n> \n> Syslog and output to files remains unchanged. Only stream outputs\n> display emoji symbols.\n\no_0 ... (^○^) !\n\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  src/libcamera/base/log.cpp | 25 ++++++++++++++++++++++++-\n>  1 file changed, 24 insertions(+), 1 deletion(-)\n> \n> diff --git a/src/libcamera/base/log.cpp b/src/libcamera/base/log.cpp\n> index 64813b6607c5..aceec7302549 100644\n> --- a/src/libcamera/base/log.cpp\n> +++ b/src/libcamera/base/log.cpp\n> @@ -96,6 +96,23 @@ static const char *log_severity_name(LogSeverity severity)\n>  \t\treturn \"UNKWN\";\n>  }\n>  \n> +static const std::string &log_severity_emojis(LogSeverity severity)\n> +{\n> +\tstatic const std::string emojis[] = {\n> +\t\t\"🪲 \", // DEBUG\n> +\t\t\"ℹ️ \", // INFO\n> +\t\t\"⚠️ \", // WARNING\n> +\t\t\"🔥 \", // ERROR\n> +\t\t\"🆘 \", // FATAL\n> +\t\t\"🤔 \", // Unknown\n\n✉ (×_×)\n\n> +\t};\n> +\n> +\tif (static_cast<unsigned int>(severity) < std::size(emojis))\n> +\t\treturn emojis[severity];\n> +\telse\n> +\t\treturn emojis[std::size(emojis) - 1];\n> +}\n> +\n>  /**\n>   * \\brief Log output\n>   *\n> @@ -194,7 +211,6 @@ void LogOutput::write(const LogMessage &msg)\n>  \t\t    + msg.msg();\n>  \t\twriteSyslog(msg.severity(), str);\n>  \t\tbreak;\n> -\tcase LoggingTargetStream:\n>  \tcase LoggingTargetFile:\n>  \t\tstr = \"[\" + utils::time_point_to_string(msg.timestamp()) + \"] [\"\n>  \t\t    + std::to_string(Thread::currentId()) + \"] \"\n> @@ -203,6 +219,13 @@ void LogOutput::write(const LogMessage &msg)\n>  \t\t    + msg.msg();\n>  \t\twriteStream(str);\n>  \t\tbreak;\n> +\tcase LoggingTargetStream:\n> +\t\tstr = \"[\" + utils::time_point_to_string(msg.timestamp()) + \"] [\"\n> +\t\t    + std::to_string(Thread::currentId()) + \"] \"\n> +\t\t    + log_severity_emojis(msg.severity()) + \" \"\n> +\t\t    + msg.category().name() + \" \" + msg.fileInfo() + \" \"\n> +\t\t    + msg.msg();\n> +\t\twriteStream(str);\n>  \tdefault:\n>  \t\tbreak;\n>  \t}","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 49E3DC3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  1 Apr 2022 12:21:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A2E06633A7;\n\tFri,  1 Apr 2022 14:21:04 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 495AD633A6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  1 Apr 2022 14:21:03 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A1E10888;\n\tFri,  1 Apr 2022 14:21:02 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1648815664;\n\tbh=QZEpg77RtFXU+DXe+Jt2p1ZD2EOyx+B3byi/1i9U3uk=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=1yYkxn4unxXQOazfg7PbTFjruqImEQCABAXyheudfq6tILdjD+gs2hRNfTFfNotfK\n\t5bp3Yq+BLRXs2hWS3AxKWHb2Z/dDoZdRFtXEIWFu8v4tdC9yhAzz9gwO7dRVD/XhJ1\n\tu8Ql/Yh2y9/qtf5HnNBaDzo4EHhc2zi+//+keiGlLDqadoWtzzv1ECImJbPbQ6y+G0\n\t3mNEXNHyPssshf8rMUu5YxNuS5Lm8/HOLWGcwkevKnjzVraIDN0p9LNhzs51e1izh+\n\t03D7uwgoBAQVCC0dxU6ME2OhZs585zBsitGeGFJLqa5pcSl8aeu4DBKR/jV+XO1IHV\n\tDNELfN7yYB7hw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1648815662;\n\tbh=QZEpg77RtFXU+DXe+Jt2p1ZD2EOyx+B3byi/1i9U3uk=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=g51hCSUVDgpZjqZf9OvzKaTrCeHstxpcHwlAEvh0ZronfzFsQ7GtMEOSRHlaFFkjC\n\tvFxhHENxu5S0fO8EA9IipWB6UPsAD9DwPBwED+c9h7AiiP5smE+5o14OMd1q3JWtmi\n\t/dI0vVAVr2MYv5S4o2I1Qxko+978CNDq5KCHK4bQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"g51hCSUV\"; dkim-atps=neutral","Date":"Fri, 1 Apr 2022 15:21:00 +0300","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YkbuLA4QtOLLEA4s@pendragon.ideasonboard.com>","References":"<20220401090309.2704921-1-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20220401090309.2704921-1-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: base: log: Use emoji's in\n\tlog output","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":22552,"web_url":"https://patchwork.libcamera.org/comment/22552/","msgid":"<e129b2f0-f458-05e6-9057-88747bebed38@ideasonboard.com>","date":"2022-04-01T13:51:28","subject":"Re: [libcamera-devel] [PATCH] libcamera: base: log: Use emoji's in\n\tlog output","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hello,\n\nThat's a perfect patch for friday :-D\n\nOn 4/1/22 14:33, Kieran Bingham via libcamera-devel wrote:\n> Our debug logs are already growing terse and difficult to parse with the\n> eye. The specific notifications can easily blend into each other.\n>\n> Add some highlight and colour to the log messages by replacing\n> the log severity levels with emoji characters which convey\n> the same meaning but in much less space.\n>\n> Syslog and output to files remains unchanged. Only stream outputs\n> display emoji symbols.\n>\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\nNice to have surely,\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n> ---\n>   src/libcamera/base/log.cpp | 25 ++++++++++++++++++++++++-\n>   1 file changed, 24 insertions(+), 1 deletion(-)\n>\n> diff --git a/src/libcamera/base/log.cpp b/src/libcamera/base/log.cpp\n> index 64813b6607c5..aceec7302549 100644\n> --- a/src/libcamera/base/log.cpp\n> +++ b/src/libcamera/base/log.cpp\n> @@ -96,6 +96,23 @@ static const char *log_severity_name(LogSeverity severity)\n>   \t\treturn \"UNKWN\";\n>   }\n>   \n> +static const std::string &log_severity_emojis(LogSeverity severity)\n> +{\n> +\tstatic const std::string emojis[] = {\n> +\t\t\"🪲 \", // DEBUG\n> +\t\t\"ℹ️ \", // INFO\n> +\t\t\"⚠️ \", // WARNING\n> +\t\t\"🔥 \", // ERROR\n> +\t\t\"🆘 \", // FATAL\n> +\t\t\"🤔 \", // Unknown\n> +\t};\n> +\n> +\tif (static_cast<unsigned int>(severity) < std::size(emojis))\n> +\t\treturn emojis[severity];\n> +\telse\n> +\t\treturn emojis[std::size(emojis) - 1];\n> +}\n> +\n>   /**\n>    * \\brief Log output\n>    *\n> @@ -194,7 +211,6 @@ void LogOutput::write(const LogMessage &msg)\n>   \t\t    + msg.msg();\n>   \t\twriteSyslog(msg.severity(), str);\n>   \t\tbreak;\n> -\tcase LoggingTargetStream:\n>   \tcase LoggingTargetFile:\n>   \t\tstr = \"[\" + utils::time_point_to_string(msg.timestamp()) + \"] [\"\n>   \t\t    + std::to_string(Thread::currentId()) + \"] \"\n> @@ -203,6 +219,13 @@ void LogOutput::write(const LogMessage &msg)\n>   \t\t    + msg.msg();\n>   \t\twriteStream(str);\n>   \t\tbreak;\n> +\tcase LoggingTargetStream:\n> +\t\tstr = \"[\" + utils::time_point_to_string(msg.timestamp()) + \"] [\"\n> +\t\t    + std::to_string(Thread::currentId()) + \"] \"\n> +\t\t    + log_severity_emojis(msg.severity()) + \" \"\n> +\t\t    + msg.category().name() + \" \" + msg.fileInfo() + \" \"\n> +\t\t    + msg.msg();\n> +\t\twriteStream(str);\n>   \tdefault:\n>   \t\tbreak;\n>   \t}","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id F1E1BC3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  1 Apr 2022 13:51:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 27D4D633A7;\n\tFri,  1 Apr 2022 15:51:41 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ACCC6633A6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  1 Apr 2022 15:51:38 +0200 (CEST)","from [192.168.1.105] (unknown [103.74.73.189])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6F376486;\n\tFri,  1 Apr 2022 15:51:35 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1648821101;\n\tbh=/rK0tvYXRoBh6Mms2kgQcTuTWuA91wLvL+425q+rBj8=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=LSDrAQEsV7Am3AspmqUCCQ/jxTp3vIlpnRYa6kW/HOYrFytaehYqur5ILmIkeIgql\n\t7PUx3qO7hbb6LUGgWtQEkxZkbMSXDamzagxLXTPMbKTGqBjN9YDJUXHWgz6RWUTquR\n\tgTuD+FR2MLC2qaHZLNtTsfu23j/mJPu/q9y/QEpiIVwuRUzn+zvBr7ODOIWZgx52/7\n\trayFpWIZtg3o5qvAgqYnJs7fPeNGscl6r2igxbs+KPEGkgGLV+lzKR3FnIMU4XlG1a\n\tYfBaX+hO4Vt+Hz+2dUMaBscmjmwiDEz5KazUrqbgo/mwtQYggLmNkYbHMDvw146pMd\n\t8V3DWO/qc9LuQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1648821098;\n\tbh=/rK0tvYXRoBh6Mms2kgQcTuTWuA91wLvL+425q+rBj8=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=sTp5ef9A2UXFIixykK8RF0skNWYnRiDHbbOo3L83TFkSFPK2pxWkdrc/heP8o3nUM\n\t2Mh7ExJ/YR/FvwOy+6gInfrmDeH0FjelBSROz010/Gs50b1JCIPYNFM7FdRwyvCYOO\n\tz9rNYEZ4dYNvEK9oEZ5vb+RF5i90Ml6TZDf9AKcM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"sTp5ef9A\"; dkim-atps=neutral","Message-ID":"<e129b2f0-f458-05e6-9057-88747bebed38@ideasonboard.com>","Date":"Fri, 1 Apr 2022 19:21:28 +0530","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.4.1","Content-Language":"en-US","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","References":"<20220401090309.2704921-1-kieran.bingham@ideasonboard.com>","In-Reply-To":"<20220401090309.2704921-1-kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH] libcamera: base: log: Use emoji's in\n\tlog output","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]