loolwsd/LOOLForKit.cpp | 10 +++++++++- loolwsd/LOOLWSD.cpp | 9 ++++++--- loolwsd/Log.cpp | 18 +++++++----------- loolwsd/configure.ac | 18 ++++++++++++++++++ loolwsd/loolwsd.xml.in | 6 +++--- 5 files changed, 43 insertions(+), 18 deletions(-)
New commits: commit 0409243683621da95e1b0598cc1c839233345a6e Author: Jan Holesovsky <[email protected]> Date: Tue Sep 27 14:30:45 2016 +0200 Log either to file or the console, not to both. Change-Id: Iac1e74d0624c2bbac4ffaf99b11488f02e626a2a diff --git a/loolwsd/LOOLForKit.cpp b/loolwsd/LOOLForKit.cpp index f1408cd..376b91f 100644 --- a/loolwsd/LOOLForKit.cpp +++ b/loolwsd/LOOLForKit.cpp @@ -198,7 +198,15 @@ int main(int argc, char** argv) } // Initialization - Log::initialize("frk", getenv("LOOL_LOGLEVEL"), getenv("LOOL_LOGCOLOR")); + const bool logToFile = getenv("LOOL_LOGFILE"); + const auto logFilename = getenv("LOOL_LOGFILENAME"); + std::map<std::string, std::string> logProperties; + if (logToFile && logFilename) + { + logProperties["path"] = std::string(logFilename); + } + + Log::initialize("frk", getenv("LOOL_LOGLEVEL"), getenv("LOOL_LOGCOLOR"), logToFile, logProperties); Util::setTerminationSignals(); Util::setFatalSignals(); diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index 12654db..1c4d4a7 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -1514,8 +1514,11 @@ void LOOLWSD::initialize(Application& self) ServerApplication::initialize(self); - Log::warn("Launch this in your browser:"); - Log::warn(lcl_getLaunchURI()); +#if ENABLE_DEBUG + std::cerr << "\nLaunch this in your browser:\n\n" << + lcl_getLaunchURI() << + "\n\nFull log is available in: " << LOOLWSD_LOGFILE << std::endl; +#endif } void LOOLWSD::initializeSSL() diff --git a/loolwsd/Log.cpp b/loolwsd/Log.cpp index 498b881..8575b49 100644 --- a/loolwsd/Log.cpp +++ b/loolwsd/Log.cpp @@ -126,24 +126,20 @@ namespace Log strncpy(LogPrefix, oss.str().c_str(), sizeof(LogPrefix)); // Configure the logger. - AutoPtr<Channel> channel = (withColor - ? static_cast<Poco::Channel*>(new Poco::ColorConsoleChannel()) - : static_cast<Poco::Channel*>(new Poco::ConsoleChannel())); + AutoPtr<Channel> channel; if (logToFile) { - auto splitterChannel(new SplitterChannel()); - splitterChannel->addChannel(channel); - - AutoPtr<FileChannel> rotatedFileChannel(new FileChannel("loolwsd.log")); + channel = static_cast<Poco::Channel*>(new FileChannel("loolwsd.log")); for (const auto& pair : config) { - rotatedFileChannel->setProperty(pair.first, pair.second); + channel->setProperty(pair.first, pair.second); } - - splitterChannel->addChannel(rotatedFileChannel); - channel = splitterChannel; } + else if (withColor) + channel = static_cast<Poco::Channel*>(new Poco::ColorConsoleChannel()); + else + channel = static_cast<Poco::Channel*>(new Poco::ConsoleChannel()); auto& logger = Poco::Logger::create(Source.name, channel, Poco::Message::PRIO_TRACE); diff --git a/loolwsd/configure.ac b/loolwsd/configure.ac index da761de..b5f18f4 100644 --- a/loolwsd/configure.ac +++ b/loolwsd/configure.ac @@ -115,7 +115,7 @@ if test "$enable_debug" = "yes"; then ENABLE_DEBUG=true LOOLWSD_LOGLEVEL="trace" LOOLWSD_LOG_TO_FILE="true" - LOOLWSD_LOGFILE="loolwsd.log" + LOOLWSD_LOGFILE="/tmp/loolwsd.log" debug_msg="low security debugging mode" else AC_DEFINE([ENABLE_DEBUG],0,[Whether to compile in some extra debugging support code and disable some security pieces]) @@ -128,6 +128,7 @@ if test -n "$with_logfile" ; then LOOLWSD_LOGFILE="$with_logfile" fi AC_SUBST(LOOLWSD_LOGFILE) +AC_DEFINE_UNQUOTED([LOOLWSD_LOGFILE],["$LOOLWSD_LOGFILE"],[Pathname of the logfile.]) MAX_DOCUMENTS=10 AS_IF([test -n "$with_max_documents"], commit 0cb07b22e371c60d2013d12d0c9afc814181305f Author: Jan Holesovsky <[email protected]> Date: Tue Sep 27 13:40:44 2016 +0200 Set less verbose logging for non-debug builds. For debugging builds, use a logfile instead of the console. Change-Id: I0d5654a568115c054c7439fe1358f5613dc432bf diff --git a/loolwsd/configure.ac b/loolwsd/configure.ac index bb41235..da761de 100644 --- a/loolwsd/configure.ac +++ b/loolwsd/configure.ac @@ -60,6 +60,10 @@ AC_ARG_WITH([lo-path], AS_HELP_STRING([--with-lo-path=<path>], [Path to a working installation directory or instdir of LibreOffice])) +AC_ARG_WITH([logfile], + AS_HELP_STRING([--with-logfile=<path>], + [Path to the location of the logfile.])) + AC_ARG_WITH([poco-includes], AS_HELP_STRING([--with-poco-includes=<path>], [Path to the "include" directory with the Poco headers])) @@ -102,15 +106,28 @@ AS_IF([test "$enable_debug" = yes -a -n "$with_poco_libs"], [POCO_DEBUG_SUFFIX=]) ENABLE_DEBUG= +LOOLWSD_LOGLEVEL="warning" +LOOLWSD_LOG_TO_FILE="false" +LOOLWSD_LOGFILE="/var/log/loolwsd.log" debug_msg="secure mode: product build" if test "$enable_debug" = "yes"; then AC_DEFINE([ENABLE_DEBUG],1,[Whether to compile in some extra debugging support code and disable some security pieces]) ENABLE_DEBUG=true + LOOLWSD_LOGLEVEL="trace" + LOOLWSD_LOG_TO_FILE="true" + LOOLWSD_LOGFILE="loolwsd.log" debug_msg="low security debugging mode" else AC_DEFINE([ENABLE_DEBUG],0,[Whether to compile in some extra debugging support code and disable some security pieces]) fi AC_SUBST(ENABLE_DEBUG) +AC_SUBST(LOOLWSD_LOGLEVEL) +AC_SUBST(LOOLWSD_LOG_TO_FILE) + +if test -n "$with_logfile" ; then + LOOLWSD_LOGFILE="$with_logfile" +fi +AC_SUBST(LOOLWSD_LOGFILE) MAX_DOCUMENTS=10 AS_IF([test -n "$with_max_documents"], diff --git a/loolwsd/loolwsd.xml.in b/loolwsd/loolwsd.xml.in index 20b1dd7..50527f8 100644 --- a/loolwsd/loolwsd.xml.in +++ b/loolwsd/loolwsd.xml.in @@ -20,9 +20,9 @@ <logging> <color type="bool">true</color> - <level type="string" desc="Can be 0-8, or none (turns off logging), fatal, critical, error, warning, notice, information, debug, trace" default="trace">trace</level> - <file enable="false"> - <property name="path" desc="Log file path.">loolwsd.log</property> + <level type="string" desc="Can be 0-8, or none (turns off logging), fatal, critical, error, warning, notice, information, debug, trace" default="@LOOLWSD_LOGLEVEL@">@LOOLWSD_LOGLEVEL@</level> + <file enable="@LOOLWSD_LOG_TO_FILE@"> + <property name="path" desc="Log file path.">@LOOLWSD_LOGFILE@</property> <property name="rotation" desc="Log file rotation strategy. See Poco FileChannel.">never</property> <property name="archive" desc="Append either timestamp or number to the archived log filename.">timestamp</property> <property name="compress" desc="Enable/disable log file compression.">true</property> commit 0467f84a6f53d9e2297e7b1fba2e15d80aed6d3a Author: Jan Holesovsky <[email protected]> Date: Tue Sep 27 13:15:17 2016 +0200 Actually move the check for tty where we check for various envvars etc. Change-Id: Ib05208770f9e1865fd322302b861108f351607da diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index 5c81d42..12654db 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -1400,7 +1400,7 @@ void LOOLWSD::initialize(Application& self) const auto logLevel = getConfigValue<std::string>(conf, "logging.level", "trace"); setenv("LOOL_LOGLEVEL", logLevel.c_str(), true); - const auto withColor = getConfigValue<bool>(conf, "logging.color", true); + const auto withColor = getConfigValue<bool>(conf, "logging.color", true) && isatty(fileno(stderr)); if (withColor) { setenv("LOOL_LOGCOLOR", "1", true); diff --git a/loolwsd/Log.cpp b/loolwsd/Log.cpp index 8f0059d..498b881 100644 --- a/loolwsd/Log.cpp +++ b/loolwsd/Log.cpp @@ -126,7 +126,7 @@ namespace Log strncpy(LogPrefix, oss.str().c_str(), sizeof(LogPrefix)); // Configure the logger. - AutoPtr<Channel> channel = (isatty(fileno(stderr)) && withColor + AutoPtr<Channel> channel = (withColor ? static_cast<Poco::Channel*>(new Poco::ColorConsoleChannel()) : static_cast<Poco::Channel*>(new Poco::ConsoleChannel())); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
