From cdbfc8f6a3a7c006635aadd28cbb1757573e69ba Mon Sep 17 00:00:00 2001
From: Sergey Linev <S.Linev@gsi.de>
Date: Tue, 13 Apr 2021 13:45:18 +0200
Subject: [PATCH] [webgui] duplicate log output on std output when
 WebGui.Console set

---
 gui/qt5webdisplay/rootwebpage.cpp | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/gui/qt5webdisplay/rootwebpage.cpp b/gui/qt5webdisplay/rootwebpage.cpp
index ec89d37d357..bba86500d68 100644
--- a/gui/qt5webdisplay/rootwebpage.cpp
+++ b/gui/qt5webdisplay/rootwebpage.cpp
@@ -15,6 +15,7 @@
 #include <ROOT/RLogger.hxx>
 #include "TString.h"
 #include "TEnv.h"
+#include <iostream>
 
 ROOT::Experimental::RLogChannel &QtWebDisplayLog()
 {
@@ -35,21 +36,24 @@ RootWebPage::RootWebPage(QObject *parent) : QWebEnginePage(parent)
 void RootWebPage::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel lvl, const QString &message, int lineNumber,
                                            const QString &src)
 {
+   TString msg = TString::Format("%s:%d: %s", src.toLatin1().constData(), lineNumber,
+                                 message.toLatin1().constData());
+
    switch (lvl) {
    case InfoMessageLevel:
+      R__LOG_DEBUG(0, QtWebDisplayLog()) << msg;
       if (fConsole > 0)
-         R__LOG_DEBUG(0, QtWebDisplayLog()) << Form("%s:%d: %s", src.toLatin1().constData(), lineNumber,
-                                     message.toLatin1().constData());
+         std::cout << msg << std::endl;
       break;
    case WarningMessageLevel:
-      if (fConsole > -1)
-         R__LOG_WARNING(QtWebDisplayLog()) << Form("%s:%d: %s", src.toLatin1().constData(), lineNumber,
-                                       message.toLatin1().constData());
+      R__LOG_WARNING(QtWebDisplayLog()) << msg;
+      if (fConsole > 0)
+         std::cout << msg << std::endl;
       break;
    case ErrorMessageLevel:
-      if (fConsole > -2)
-         R__LOG_ERROR(QtWebDisplayLog()) << Form("%s:%d: %s", src.toLatin1().constData(), lineNumber,
-                                     message.toLatin1().constData());
+      R__LOG_ERROR(QtWebDisplayLog()) << msg;
+      if (fConsole > 0)
+         std::cerr << msg << std::endl;
       break;
    }
 }
-- 
GitLab