From ddc022466e868ee6fc2265185341440b51634eab Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Thu, 26 Jan 2017 09:19:48 +0100 Subject: [PATCH] Set log level on startup from environment variable --- src/anbox/daemon.cpp | 6 ++++++ src/anbox/logger.cpp | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/anbox/daemon.cpp b/src/anbox/daemon.cpp index 248a70c..d246d7c 100644 --- a/src/anbox/daemon.cpp +++ b/src/anbox/daemon.cpp @@ -39,6 +39,12 @@ Daemon::Daemon() .command(std::make_shared()) .command(std::make_shared()) .command(std::make_shared()); + + Log().Init(anbox::Logger::Severity::kWarning); + + const auto log_level = utils::get_env_value("ANBOX_LOG_LEVEL", ""); + if (!log_level.empty()) + Log().SetSeverity(log_level); } int Daemon::Run(const std::vector &arguments) try { diff --git a/src/anbox/logger.cpp b/src/anbox/logger.cpp index bb92783..8dd7866 100644 --- a/src/anbox/logger.cpp +++ b/src/anbox/logger.cpp @@ -60,6 +60,10 @@ struct BoostLogLogger : public anbox::Logger { initialized_ = true; } + void SetSeverity(const Severity& severity) override { + severity_ = severity; + } + void Log(Severity severity, const std::string& message, const boost::optional& loc) override { if (!initialized_) Init(); @@ -103,6 +107,21 @@ void SetInstance(const std::shared_ptr& logger) { } namespace anbox { +void Logger::SetSeverity(const std::string& severity) { + if (severity == "trace") + SetSeverity(Severity::kTrace); + else if (severity == "debug") + SetSeverity(Severity::kDebug); + else if (severity == "info") + SetSeverity(Severity::kInfo); + else if (severity == "warning") + SetSeverity(Severity::kWarning); + else if (severity == "error") + SetSeverity(Severity::kError); + else if (severity == "fatal") + SetSeverity(Severity::kFatal); +} + void Logger::Trace(const std::string& message, const boost::optional& location) { Log(Severity::kTrace, message, location);