diff options
author | shmel1k <shmel1k@ydb.tech> | 2022-09-16 17:10:11 +0300 |
---|---|---|
committer | shmel1k <shmel1k@ydb.tech> | 2022-09-16 17:10:11 +0300 |
commit | 0543d8ded75208f6c8de016998adb0d8b9b7530d (patch) | |
tree | 2d5ba0afab47461e008243101e506e671c83287d | |
parent | 71494c6a0a1c1f696dac9a26779712b22dc053b1 (diff) | |
download | ydb-0543d8ded75208f6c8de016998adb0d8b9b7530d.tar.gz |
[] add possibility to log driver messages
-rw-r--r-- | ydb/public/lib/ydb_cli/commands/ydb_command.cpp | 14 | ||||
-rw-r--r-- | ydb/public/lib/ydb_cli/commands/ydb_command.h | 6 | ||||
-rw-r--r-- | ydb/public/lib/ydb_cli/commands/ydb_service_topic.cpp | 22 |
3 files changed, 38 insertions, 4 deletions
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_command.cpp b/ydb/public/lib/ydb_cli/commands/ydb_command.cpp index e1b8fab3e6f..09075458168 100644 --- a/ydb/public/lib/ydb_cli/commands/ydb_command.cpp +++ b/ydb/public/lib/ydb_cli/commands/ydb_command.cpp @@ -8,7 +8,7 @@ TYdbCommand::TYdbCommand(const TString& name, const std::initializer_list<TStrin :TClientCommand(name, aliases, description) {} -TDriver TYdbCommand::CreateDriver(TConfig& config) { +TDriverConfig TYdbCommand::CreateDriverConfig(TConfig& config) { auto driverConfig = TDriverConfig() .SetEndpoint(config.Address) .SetDatabase(config.Database) @@ -16,6 +16,18 @@ TDriver TYdbCommand::CreateDriver(TConfig& config) { if (config.EnableSsl) { driverConfig.UseSecureConnection(config.CaCerts); } + + return driverConfig; +} + +TDriver TYdbCommand::CreateDriver(TConfig& config) { + return TDriver(CreateDriverConfig(config)); +} + +TDriver TYdbCommand::CreateDriver(TConfig& config, THolder<TLogBackend>&& loggingBackend) { + auto driverConfig = CreateDriverConfig(config); + driverConfig.SetLog(std::move(loggingBackend)); + return TDriver(driverConfig); } diff --git a/ydb/public/lib/ydb_cli/commands/ydb_command.h b/ydb/public/lib/ydb_cli/commands/ydb_command.h index 95b967ec447..85fe317f0f1 100644 --- a/ydb/public/lib/ydb_cli/commands/ydb_command.h +++ b/ydb/public/lib/ydb_cli/commands/ydb_command.h @@ -5,6 +5,8 @@ #include <ydb/public/sdk/cpp/client/ydb_driver/driver.h> #include <ydb/public/sdk/cpp/client/draft/ydb_scripting.h> +#include <library/cpp/logger/backend.h> + namespace NYdb { namespace NConsoleClient { @@ -16,6 +18,10 @@ public: const TString& description = TString() ); TDriver CreateDriver(TConfig& config); + TDriver CreateDriver(TConfig& config, THolder<TLogBackend>&& loggingBackend); + +private: + TDriverConfig CreateDriverConfig(TConfig& config); }; class TYdbSimpleCommand : public TYdbCommand { diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_topic.cpp b/ydb/public/lib/ydb_cli/commands/ydb_service_topic.cpp index 1543ff0442c..183313c8e45 100644 --- a/ydb/public/lib/ydb_cli/commands/ydb_service_topic.cpp +++ b/ydb/public/lib/ydb_cli/commands/ydb_service_topic.cpp @@ -38,7 +38,6 @@ namespace NYdb::NConsoleClient { std::pair<NTopic::EMeteringMode, TString>(NTopic::EMeteringMode::RequestUnits, "Read/write operations valued in request units, storage usage on hourly basis."), }; - // TODO(shmel1k@): improve docs THashMap<ETopicMetadataField, TString> TopicMetadataFieldsDescriptions = { {ETopicMetadataField::Body, "Message data"}, {ETopicMetadataField::WriteTime, "Message write time, a UNIX timestamp the message was written to server."}, @@ -79,6 +78,21 @@ namespace NYdb::NConsoleClient { bool IsStreamingFormat(EMessagingFormat format) { return format == EMessagingFormat::NewlineDelimited || format == EMessagingFormat::Concatenated; } + + ELogPriority VerbosityLevelToELogPriority(TClientCommand::TConfig::EVerbosityLevel lvl) { + switch (lvl) { + case TClientCommand::TConfig::EVerbosityLevel::NONE: + return ELogPriority::TLOG_EMERG; + case TClientCommand::TConfig::EVerbosityLevel::DEBUG: + return ELogPriority::TLOG_DEBUG; + case TClientCommand::TConfig::EVerbosityLevel::INFO: + return ELogPriority::TLOG_INFO; + case TClientCommand::TConfig::EVerbosityLevel::WARN: + return ELogPriority::TLOG_WARNING; + default: + return ELogPriority::TLOG_EMERG; + } + } } // namespace namespace { @@ -595,7 +609,8 @@ namespace NYdb::NConsoleClient { int TCommandTopicRead::Run(TConfig& config) { ValidateConfig(); - auto driver = std::make_unique<TDriver>(CreateDriver(config)); + auto driver = + std::make_unique<TDriver>(CreateDriver(config, CreateLogBackend("cerr", VerbosityLevelToELogPriority(config.VerbosityLevel)))); NTopic::TTopicClient topicClient(*driver); auto readSession = topicClient.CreateReadSession(PrepareReadSessionSettings()); @@ -725,7 +740,8 @@ namespace NYdb::NConsoleClient { int TCommandTopicWrite::Run(TConfig& config) { SetInterruptHandlers(); - auto driver = std::make_unique<TDriver>(CreateDriver(config)); + auto driver = + std::make_unique<TDriver>(CreateDriver(config, CreateLogBackend("cerr", VerbosityLevelToELogPriority(config.VerbosityLevel)))); NTopic::TTopicClient topicClient(*driver); TTopicInitializationChecker checker = TTopicInitializationChecker(topicClient); checker.CheckTopicExistence(TopicName); |