Set default logger level
diff --git a/src/main/cpp/client/LogInterceptor.cpp b/src/main/cpp/client/LogInterceptor.cpp
index 3f58345..88d1417 100644
--- a/src/main/cpp/client/LogInterceptor.cpp
+++ b/src/main/cpp/client/LogInterceptor.cpp
@@ -11,6 +11,25 @@
void LogInterceptor::Intercept(grpc::experimental::InterceptorBatchMethods* methods) {
InterceptorContinuation continuation(methods);
+ auto level = spdlog::default_logger()->level();
+ switch (level) {
+ case spdlog::level::trace:
+ // fall-through on purpose.
+ case spdlog::level::debug: {
+ break;
+ }
+ case spdlog::level::info:
+ // fall-through on purpose.
+ case spdlog::level::warn:
+ // fall-through on purpose.
+ case spdlog::level::err: {
+ return;
+ }
+ default: {
+ return;
+ }
+ }
+
if (methods->QueryInterceptionHookPoint(grpc::experimental::InterceptionHookPoints::PRE_SEND_INITIAL_METADATA)) {
std::multimap<std::string, std::string>* metadata = methods->GetSendInitialMetadata();
if (metadata) {
diff --git a/src/main/cpp/log/LoggerImpl.cpp b/src/main/cpp/log/LoggerImpl.cpp
index 20643f8..a8140f4 100644
--- a/src/main/cpp/log/LoggerImpl.cpp
+++ b/src/main/cpp/log/LoggerImpl.cpp
@@ -1,4 +1,6 @@
#include "LoggerImpl.h"
+#include <algorithm>
+#include <cstdint>
#include <cstdlib>
#include <iostream>
@@ -77,7 +79,30 @@
auto default_logger =
std::make_shared<spdlog::logger>(LOGGER_NAME, spdlog::sinks_init_list{console_sink_, file_sink_});
default_logger->flush_on(spdlog::level::warn);
- default_logger->set_level(spdlog::level::trace);
+ Level logger_level =
+ static_cast<Level>(std::min(static_cast<std::uint8_t>(level_), static_cast<std::uint8_t>(console_level_)));
+ switch (logger_level) {
+ case Level::Trace: {
+ default_logger->set_level(spdlog::level::trace);
+ break;
+ }
+ case Level::Debug: {
+ default_logger->set_level(spdlog::level::debug);
+ break;
+ }
+ case Level::Info: {
+ default_logger->set_level(spdlog::level::info);
+ break;
+ }
+ case Level::Warn: {
+ default_logger->set_level(spdlog::level::warn);
+ break;
+ }
+ default: {
+ default_logger->set_level(spdlog::level::info);
+ break;
+ }
+ }
spdlog::flush_every(std::chrono::seconds(1));
spdlog::set_default_logger(default_logger);
}