mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
The default 'trace' log level is quite verbose for our production systems. This commit changes the default to 'info' and adds a command line option to control the log level if needed. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
79 lines
3.2 KiB
Diff
79 lines
3.2 KiB
Diff
From ba43271df7cc83806a08d6937719544786fd331d Mon Sep 17 00:00:00 2001
|
|
From: Joachim Wiberg <troglobit@gmail.com>
|
|
Date: Sun, 28 Sep 2025 06:04:12 +0200
|
|
Subject: [PATCH 13/13] Add '--log-level LEVEL' command line option
|
|
Organization: Wires
|
|
|
|
The default 'trace' log level is quite verbose for production systems.
|
|
This commit changes the default to 'info' and adds a command line option
|
|
to control the log level.
|
|
|
|
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
|
---
|
|
src/restconf/main.cpp | 27 +++++++++++++++++++++++++--
|
|
1 file changed, 25 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/restconf/main.cpp b/src/restconf/main.cpp
|
|
index 477e846..f253421 100644
|
|
--- a/src/restconf/main.cpp
|
|
+++ b/src/restconf/main.cpp
|
|
@@ -26,11 +26,12 @@
|
|
static const char usage[] =
|
|
R"(Rousette - RESTCONF server
|
|
Usage:
|
|
- rousette [--syslog] [--timeout <SECONDS>] [--help]
|
|
+ rousette [--syslog] [--timeout <SECONDS>] [--log-level <LEVEL>] [--help]
|
|
Options:
|
|
-h --help Show this screen.
|
|
-t --timeout <SECONDS> Change default timeout in sysrepo (if not set, use sysrepo internal).
|
|
--syslog Log to syslog.
|
|
+ --log-level <LEVEL> Set log level (trace, debug, info, warn, error, critical, off) [default: info].
|
|
)";
|
|
#ifdef HAVE_SYSTEMD
|
|
|
|
@@ -75,10 +76,32 @@ int main(int argc, char* argv [])
|
|
{
|
|
auto args = docopt::docopt(usage, {argv + 1, argv + argc}, true,""/* version */, true);
|
|
auto timeout = std::chrono::milliseconds{0};
|
|
+ auto logLevel = spdlog::level::info;
|
|
|
|
if (args["--timeout"]) {
|
|
timeout = std::chrono::milliseconds{args["--timeout"].asLong() * 1000};
|
|
}
|
|
+
|
|
+ if (args["--log-level"]) {
|
|
+ auto levelStr = args["--log-level"].asString();
|
|
+ if (levelStr == "trace") {
|
|
+ logLevel = spdlog::level::trace;
|
|
+ } else if (levelStr == "debug") {
|
|
+ logLevel = spdlog::level::debug;
|
|
+ } else if (levelStr == "info") {
|
|
+ logLevel = spdlog::level::info;
|
|
+ } else if (levelStr == "warn" || levelStr == "warning") {
|
|
+ logLevel = spdlog::level::warn;
|
|
+ } else if (levelStr == "error" || levelStr == "err") {
|
|
+ logLevel = spdlog::level::err;
|
|
+ } else if (levelStr == "critical") {
|
|
+ logLevel = spdlog::level::critical;
|
|
+ } else if (levelStr == "off") {
|
|
+ logLevel = spdlog::level::off;
|
|
+ } else {
|
|
+ throw std::runtime_error("Invalid log level: " + levelStr + ". Valid levels: trace, debug, info, warn, error, critical, off");
|
|
+ }
|
|
+ }
|
|
if (args["--syslog"].asBool()) {
|
|
auto syslog_sink = std::make_shared<spdlog::sinks::syslog_sink_mt>("rousette", LOG_PID, LOG_USER, true);
|
|
auto logger = std::make_shared<spdlog::logger>("rousette", syslog_sink);
|
|
@@ -94,7 +117,7 @@ int main(int argc, char* argv [])
|
|
auto logger = std::make_shared<spdlog::logger>("rousette", stdout_sink);
|
|
spdlog::set_default_logger(logger);
|
|
}
|
|
- spdlog::set_level(spdlog::level::trace);
|
|
+ spdlog::set_level(logLevel);
|
|
|
|
/* We will parse URIs using boost::spirit's alnum/alpha/... matchers which are locale-dependent.
|
|
* Let's use something stable no matter what the system is using
|
|
--
|
|
2.43.0
|
|
|