diff --git a/.travis.yml b/.travis.yml index 8e2673c..5153fd8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,13 @@ rvm: install: - sudo apt-get -y install apt-utils automake # - sudo apt-get upgrade libstdc++6 - - wget https://archive.apache.org/dist/pulsar/pulsar-2.6.1/DEB/apache-pulsar-client.deb - - wget https://archive.apache.org/dist/pulsar/pulsar-2.6.1/DEB/apache-pulsar-client-dev.deb + # - wget https://archive.apache.org/dist/pulsar/pulsar-client-cpp-3.4.2/deb-x86_64/apache-pulsar-client.deb + # - wget https://archive.apache.org/dist/pulsar/pulsar-client-cpp-3.4.2/deb-x86_64/apache-pulsar-client-dev.deb + - wget https://archive.apache.org/dist/pulsar/pulsar-client-cpp-3.4.2/deb-arm64/apache-pulsar-client.deb + - wget https://archive.apache.org/dist/pulsar/pulsar-client-cpp-3.4.2/deb-arm64/apache-pulsar-client-dev.deb - sudo apt-get -y install ./apache-pulsar-client.deb - sudo apt-get -y install ./apache-pulsar-client-dev.deb - - gem install bundler -v 1.16.1 + - gem install bundler -v 2.1.4 - bundle install before_script: - docker run --name pulsar -d -p 6650:6650 -p 8080:8080 apachepulsar/pulsar:latest bin/pulsar standalone diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 62f3c0e..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,40 +0,0 @@ -PATH - remote: . - specs: - pulsar-client (2.6.1.pre.beta.2) - rake-compiler (~> 1.0) - rice (~> 2.1) - -GEM - remote: https://rubygems.org/ - specs: - diff-lcs (1.4.4) - rake (10.5.0) - rake-compiler (1.1.1) - rake - rice (2.2.0) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.1) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-mocks (3.10.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-support (3.10.2) - -PLATFORMS - ruby - -DEPENDENCIES - bundler (~> 1.16) - pulsar-client! - rake (~> 10.0) - rspec (~> 3.0) - -BUNDLED WITH - 1.17.3 diff --git a/ext/bindings/client.cpp b/ext/bindings/client.cpp index cf9b9e7..b926297 100644 --- a/ext/bindings/client.cpp +++ b/ext/bindings/client.cpp @@ -1,6 +1,9 @@ #include "rice/Data_Type.hpp" #include "rice/Constructor.hpp" #include +#include +#include +#include #include #include "client.hpp" @@ -54,11 +57,50 @@ void ClientConfiguration::setConcurrentLookupRequest(int n) { } std::string ClientConfiguration::getLogConfFilePath() { - return _config.getLogConfFilePath(); + return logConfigFilePath; } void ClientConfiguration::setLogConfFilePath(const std::string& path) { - _config.setLogConfFilePath(path); + logConfigFilePath = path; + + Logger::Level level = Logger::LEVEL_INFO; + if (logLevel == "DEBUG") { + level = Logger::LEVEL_DEBUG; + } else if (logLevel == "WARN") { + level = Logger::LEVEL_WARN; + + } else if (logLevel == "ERROR") { + level = Logger::LEVEL_ERROR; + } + if (logConfigFilePath == "STDOUT") { + _config.setLogger(new ConsoleLoggerFactory(level)); + } else { + _config.setLogger(new FileLoggerFactory(level, logConfigFilePath)); + } +} + +void ClientConfiguration::setLogLevel(const std::string& log_level) { + logLevel = log_level; + + Logger::Level level = Logger::LEVEL_INFO; + if (logLevel == "DEBUG") { + level = Logger::LEVEL_DEBUG; + } else if (logLevel == "WARN") { + level = Logger::LEVEL_WARN; + + } else if (logLevel == "ERROR") { + level = Logger::LEVEL_ERROR; + } + + if (logConfigFilePath == "STDOUT") { + _config.setLogger(new ConsoleLoggerFactory(level)); + } else { + _config.setLogger(new FileLoggerFactory(level, logConfigFilePath)); + } +} + +std::string ClientConfiguration::getLogLevel() { + return logLevel; } void ClientConfiguration::setSilentLogging(bool enable) { @@ -68,7 +110,6 @@ void ClientConfiguration::setSilentLogging(bool enable) { throw Rice::Exception(rb_eArgError, "silent_logging can only be set once"); } } - if (enable) { silentLogging = true; std::unique_ptr loggerFactory = SilentLoggerFactory::create(); @@ -216,6 +257,8 @@ void bind_client(Module& module) { .define_method("concurrent_lookup_requests=", &pulsar_rb::ClientConfiguration::setConcurrentLookupRequest) .define_method("log_conf_file_path", &pulsar_rb::ClientConfiguration::getLogConfFilePath) .define_method("log_conf_file_path=", &pulsar_rb::ClientConfiguration::setLogConfFilePath) + .define_method("log_level", &pulsar_rb::ClientConfiguration::getLogLevel) + .define_method("log_level=", &pulsar_rb::ClientConfiguration::setLogLevel) .define_method("silent_logging?", &pulsar_rb::ClientConfiguration::getSilentLogging) .define_method("silent_logging=", &pulsar_rb::ClientConfiguration::setSilentLogging) .define_method("use_tls?", &pulsar_rb::ClientConfiguration::isUseTls) diff --git a/ext/bindings/client.hpp b/ext/bindings/client.hpp index 3bfa148..93f33b8 100644 --- a/ext/bindings/client.hpp +++ b/ext/bindings/client.hpp @@ -14,6 +14,9 @@ namespace pulsar_rb { public: pulsar::ClientConfiguration _config; bool silentLogging = false; + std::string logConfigFilePath = "STDOUT"; + std::string logLevel = "DEBUG"; + ClientConfiguration(); void setAuthFromToken(const std::string &token); @@ -28,6 +31,8 @@ namespace pulsar_rb { void setConcurrentLookupRequest(int n); std::string getLogConfFilePath(); void setLogConfFilePath(const std::string& path); + void setLogLevel(const std::string& level); + std::string getLogLevel(); void setSilentLogging(bool); bool getSilentLogging(); bool isUseTls(); diff --git a/ext/bindings/extconf.rb b/ext/bindings/extconf.rb index 6533b54..beb91dd 100644 --- a/ext/bindings/extconf.rb +++ b/ext/bindings/extconf.rb @@ -1,3 +1,4 @@ +require 'bundler/setup' require 'mkmf-rice' $LOCAL_LIBS << "-lpulsar" $CXXFLAGS += " -std=c++11 " diff --git a/lib/pulsar/client/version.rb b/lib/pulsar/client/version.rb index 3b45810..2896cce 100644 --- a/lib/pulsar/client/version.rb +++ b/lib/pulsar/client/version.rb @@ -19,6 +19,6 @@ module Pulsar class Client - VERSION = "2.6.1-beta.2" + VERSION = "3.4.2" end end diff --git a/lib/pulsar/client_configuration.rb b/lib/pulsar/client_configuration.rb index 9762c2c..9ec16d2 100644 --- a/lib/pulsar/client_configuration.rb +++ b/lib/pulsar/client_configuration.rb @@ -138,6 +138,7 @@ def populate(config={}) populate_one(config, :message_listener_threads) populate_one(config, :concurrent_lookup_requests) populate_one(config, :log_conf_file_path) + populate_one(config, :log_level) populate_one(config, :silent_logging) populate_one(config, :use_tls) populate_one(config, :tls_trust_certs_file_path) diff --git a/pulsar-client.gemspec b/pulsar-client.gemspec index 2d387df..381d9fa 100644 --- a/pulsar-client.gemspec +++ b/pulsar-client.gemspec @@ -22,10 +22,10 @@ Gem::Specification.new do |spec| spec.extensions = ["ext/bindings/extconf.rb"] - spec.add_development_dependency "bundler", "~> 1.16" - spec.add_development_dependency "rake", "~> 10.0" - spec.add_development_dependency "rspec", "~> 3.0" + # spec.add_development_dependency "bundler", "~> 2.1" + # spec.add_development_dependency "rake", "~> 13" + # spec.add_development_dependency "rspec", "~> 3.10" - spec.add_dependency "rake-compiler", "~> 1.0" - spec.add_dependency "rice", "~> 2.1" + spec.add_dependency "rake-compiler", "~> 1.2" + spec.add_dependency "rice", "~> 3.0" end