This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 9b96bdbc73 GH-47518: [C++][FlightRPC] Replace `spdlogs` with Arrow's 
Internal Logging (#47645)
9b96bdbc73 is described below

commit 9b96bdbc733d62f0375a2b1b9806132abc19cd3f
Author: Alina (Xi) Li <[email protected]>
AuthorDate: Sat Sep 27 02:02:17 2025 -0700

    GH-47518: [C++][FlightRPC] Replace `spdlogs` with Arrow's Internal Logging 
(#47645)
    
    ### Rationale for this change
     Replace `spdlogs` with Arrow's Internal Logging.
    
    ### What changes are included in this PR?
    - removed `spdlogs` fetch and build
    - replaced odbc logging framework with Arrow's internal logging
    - Build fixes:
        - use C++ 20
        - dsn window minor static cast fix
    
    ### Are these changes tested?
    - yes, on local Windows environment
    
    ### Are there any user-facing changes?
    No
    * GitHub Issue: #47518
    
    Lead-authored-by: Alina (Xi) Li <[email protected]>
    Co-authored-by: Alina (Xi) Li <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 cpp/src/arrow/flight/sql/odbc/CMakeLists.txt       |  4 +
 .../sql/odbc/flight_sql/flight_sql_driver.cc       | 97 +++++++++-------------
 .../include/flight_sql/flight_sql_driver.h         |  1 +
 .../odbc/flight_sql/ui/dsn_configuration_window.cc |  2 +-
 .../flight/sql/odbc/odbcabstraction/CMakeLists.txt | 21 -----
 .../include/odbcabstraction/logger.h               | 67 ---------------
 .../include/odbcabstraction/spd_logger.h           | 54 ------------
 .../include/odbcabstraction/utils.h                |  7 +-
 .../flight/sql/odbc/odbcabstraction/logger.cc      | 32 -------
 .../flight/sql/odbc/odbcabstraction/spd_logger.cc  | 70 ----------------
 .../arrow/flight/sql/odbc/odbcabstraction/utils.cc | 37 ---------
 cpp/vcpkg.json                                     |  1 -
 12 files changed, 46 insertions(+), 347 deletions(-)

diff --git a/cpp/src/arrow/flight/sql/odbc/CMakeLists.txt 
b/cpp/src/arrow/flight/sql/odbc/CMakeLists.txt
index 80be0dee99..852ffae15f 100644
--- a/cpp/src/arrow/flight/sql/odbc/CMakeLists.txt
+++ b/cpp/src/arrow/flight/sql/odbc/CMakeLists.txt
@@ -17,5 +17,9 @@
 
 add_custom_target(arrow_flight_sql_odbc)
 
+# Use C++ 20 for ODBC and its subdirectory
+# GH-44792: Arrow will switch to C++ 20
+set(CMAKE_CXX_STANDARD 20)
+
 add_subdirectory(flight_sql)
 add_subdirectory(odbcabstraction)
diff --git a/cpp/src/arrow/flight/sql/odbc/flight_sql/flight_sql_driver.cc 
b/cpp/src/arrow/flight/sql/odbc/flight_sql/flight_sql_driver.cc
index 1949d2f15a..70e94def22 100644
--- a/cpp/src/arrow/flight/sql/odbc/flight_sql/flight_sql_driver.cc
+++ b/cpp/src/arrow/flight/sql/odbc/flight_sql/flight_sql_driver.cc
@@ -18,41 +18,31 @@
 #include 
"arrow/flight/sql/odbc/flight_sql/include/flight_sql/flight_sql_driver.h"
 #include "arrow/flight/sql/odbc/flight_sql/flight_sql_connection.h"
 #include 
"arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/platform.h"
-#include 
"arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/spd_logger.h"
-#include 
"arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/utils.h"
+#include "arrow/util/io_util.h"
+#include "arrow/util/logging.h"
+#include "arrow/util/string.h"
 
-#define DEFAULT_MAXIMUM_FILE_SIZE 16777216
-#define CONFIG_FILE_NAME "arrow-odbc.ini"
+using arrow::util::ArrowLogLevel;
 
 namespace driver {
 namespace flight_sql {
+static constexpr const char* kODBCLogLevel = "ARROW_ODBC_LOG_LEVEL";
 
 using odbcabstraction::Connection;
-using odbcabstraction::LogLevel;
 using odbcabstraction::OdbcVersion;
-using odbcabstraction::SPDLogger;
 
-namespace {
-LogLevel ToLogLevel(int64_t level) {
-  switch (level) {
-    case 0:
-      return LogLevel::LogLevel_TRACE;
-    case 1:
-      return LogLevel::LogLevel_DEBUG;
-    case 2:
-      return LogLevel::LogLevel_INFO;
-    case 3:
-      return LogLevel::LogLevel_WARN;
-    case 4:
-      return LogLevel::LogLevel_ERROR;
-    default:
-      return LogLevel::LogLevel_OFF;
-  }
+FlightSqlDriver::FlightSqlDriver()
+    : diagnostics_("Apache Arrow", "Flight SQL", OdbcVersion::V_3), 
version_("0.9.0.0") {
+  RegisterLog();
 }
-}  // namespace
 
-FlightSqlDriver::FlightSqlDriver()
-    : diagnostics_("Apache Arrow", "Flight SQL", OdbcVersion::V_3), 
version_("0.9.0.0") {}
+FlightSqlDriver::~FlightSqlDriver() {
+  // Unregister log if logging is enabled
+  if (arrow::internal::GetEnvVar(kODBCLogLevel).ValueOr("").empty()) {
+    return;
+  }
+  arrow::util::ArrowLog::ShutDownArrowLog();
+}
 
 std::shared_ptr<Connection> FlightSqlDriver::CreateConnection(OdbcVersion 
odbc_version) {
   return std::make_shared<FlightSqlConnection>(odbc_version, version_);
@@ -63,45 +53,36 @@ odbcabstraction::Diagnostics& 
FlightSqlDriver::GetDiagnostics() { return diagnos
 void FlightSqlDriver::SetVersion(std::string version) { version_ = 
std::move(version); }
 
 void FlightSqlDriver::RegisterLog() {
-  odbcabstraction::PropertyMap propertyMap;
-  driver::odbcabstraction::ReadConfigFile(propertyMap, CONFIG_FILE_NAME);
-
-  auto log_enable_iterator = propertyMap.find(SPDLogger::LOG_ENABLED);
-  auto log_enabled = log_enable_iterator != propertyMap.end()
-                         ? odbcabstraction::AsBool(log_enable_iterator->second)
-                         : false;
-  if (!log_enabled) {
+  std::string log_level_str = arrow::internal::GetEnvVar(kODBCLogLevel)
+                                  .Map(arrow::internal::AsciiToLower)
+                                  .Map(arrow::internal::TrimString)
+                                  .ValueOr("");
+  if (log_level_str.empty()) {
     return;
   }
 
-  auto log_path_iterator = propertyMap.find(SPDLogger::LOG_PATH);
-  auto log_path = log_path_iterator != propertyMap.end() ? 
log_path_iterator->second : "";
-  if (log_path.empty()) {
-    return;
+  auto log_level = ArrowLogLevel::ARROW_DEBUG;
+
+  if (log_level_str == "fatal") {
+    log_level = ArrowLogLevel::ARROW_FATAL;
+  } else if (log_level_str == "error") {
+    log_level = ArrowLogLevel::ARROW_ERROR;
+  } else if (log_level_str == "warning") {
+    log_level = ArrowLogLevel::ARROW_WARNING;
+  } else if (log_level_str == "info") {
+    log_level = ArrowLogLevel::ARROW_INFO;
+  } else if (log_level_str == "debug") {
+    log_level = ArrowLogLevel::ARROW_DEBUG;
+  } else if (log_level_str == "trace") {
+    log_level = ArrowLogLevel::ARROW_TRACE;
   }
 
-  auto log_level_iterator = propertyMap.find(SPDLogger::LOG_LEVEL);
-  auto log_level = ToLogLevel(log_level_iterator != propertyMap.end()
-                                  ? std::stoi(log_level_iterator->second)
-                                  : 1);
-  if (log_level == odbcabstraction::LogLevel_OFF) {
-    return;
+  // Enable driver logging. Log files are not supported on Windows yet, since 
GLOG is not
+  // tested fully on Windows.
+  // Info log level is enabled by default.
+  if (log_level != ArrowLogLevel::ARROW_INFO) {
+    arrow::util::ArrowLog::StartArrowLog("arrow-flight-sql-odbc", log_level);
   }
-
-  auto maximum_file_size_iterator = 
propertyMap.find(SPDLogger::MAXIMUM_FILE_SIZE);
-  auto maximum_file_size = maximum_file_size_iterator != propertyMap.end()
-                               ? std::stoi(maximum_file_size_iterator->second)
-                               : DEFAULT_MAXIMUM_FILE_SIZE;
-
-  auto maximum_file_quantity_iterator = 
propertyMap.find(SPDLogger::FILE_QUANTITY);
-  auto maximum_file_quantity = maximum_file_quantity_iterator != 
propertyMap.end()
-                                   ? 
std::stoi(maximum_file_quantity_iterator->second)
-                                   : 1;
-
-  std::unique_ptr<odbcabstraction::SPDLogger> logger(new 
odbcabstraction::SPDLogger());
-
-  logger->init(maximum_file_quantity, maximum_file_size, log_path, log_level);
-  odbcabstraction::Logger::SetInstance(std::move(logger));
 }
 
 }  // namespace flight_sql
diff --git 
a/cpp/src/arrow/flight/sql/odbc/flight_sql/include/flight_sql/flight_sql_driver.h
 
b/cpp/src/arrow/flight/sql/odbc/flight_sql/include/flight_sql/flight_sql_driver.h
index 88460cdf5b..f349fa3344 100644
--- 
a/cpp/src/arrow/flight/sql/odbc/flight_sql/include/flight_sql/flight_sql_driver.h
+++ 
b/cpp/src/arrow/flight/sql/odbc/flight_sql/include/flight_sql/flight_sql_driver.h
@@ -30,6 +30,7 @@ class FlightSqlDriver : public odbcabstraction::Driver {
 
  public:
   FlightSqlDriver();
+  ~FlightSqlDriver();
 
   std::shared_ptr<odbcabstraction::Connection> CreateConnection(
       odbcabstraction::OdbcVersion odbc_version) override;
diff --git 
a/cpp/src/arrow/flight/sql/odbc/flight_sql/ui/dsn_configuration_window.cc 
b/cpp/src/arrow/flight/sql/odbc/flight_sql/ui/dsn_configuration_window.cc
index 42741c5a3e..7792773447 100644
--- a/cpp/src/arrow/flight/sql/odbc/flight_sql/ui/dsn_configuration_window.cc
+++ b/cpp/src/arrow/flight/sql/odbc/flight_sql/ui/dsn_configuration_window.cc
@@ -280,7 +280,7 @@ int 
DsnConfigurationWindow::CreateEncryptionSettingsGroup(int posX, int posY, in
       rightCheckPosX, rowPos - 2, 20, 2 * ROW_HEIGHT, "",
       ChildId::DISABLE_CERT_VERIFICATION_CHECKBOX, disableCertVerification);
 
-  rowPos += INTERVAL + static_cast<int>(1.5 * ROW_HEIGHT);
+  rowPos += INTERVAL + static_cast<int>(1.5 * static_cast<int>(ROW_HEIGHT));
 
   encryptionSettingsGroupBox =
       CreateGroupBox(posX, posY, sizeX, rowPos - posY, "Encryption settings",
diff --git a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/CMakeLists.txt 
b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/CMakeLists.txt
index c9614b88a5..17abe2c146 100644
--- a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/CMakeLists.txt
+++ b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/CMakeLists.txt
@@ -25,9 +25,7 @@ add_library(odbcabstraction
             include/odbcabstraction/diagnostics.h
             include/odbcabstraction/error_codes.h
             include/odbcabstraction/exceptions.h
-            include/odbcabstraction/logger.h
             include/odbcabstraction/platform.h
-            include/odbcabstraction/spd_logger.h
             include/odbcabstraction/types.h
             include/odbcabstraction/utils.h
             include/odbcabstraction/odbc_impl/attribute_utils.h
@@ -47,8 +45,6 @@ add_library(odbcabstraction
             diagnostics.cc
             encoding.cc
             exceptions.cc
-            logger.cc
-            spd_logger.cc
             utils.cc
             ../../../../vendored/whereami/whereami.cc
             odbc_impl/odbc_connection.cc
@@ -65,20 +61,3 @@ set_target_properties(odbcabstraction
                                  ${CMAKE_BINARY_DIR}/$<CONFIG>/lib
                                  RUNTIME_OUTPUT_DIRECTORY
                                  ${CMAKE_BINARY_DIR}/$<CONFIG>/lib)
-
-include(FetchContent)
-fetchcontent_declare(spdlog
-                     URL 
https://github.com/gabime/spdlog/archive/76fb40d95455f249bd70824ecfcae7a8f0930fa3.zip
-                         CONFIGURE_COMMAND
-                         ""
-                         BUILD_COMMAND
-                         "")
-fetchcontent_getproperties(spdlog)
-if(NOT spdlog_POPULATED)
-  fetchcontent_populate(spdlog)
-endif()
-
-add_library(spdlog INTERFACE)
-target_include_directories(spdlog INTERFACE ${spdlog_SOURCE_DIR}/include)
-
-target_link_libraries(odbcabstraction PUBLIC spdlog)
diff --git 
a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/logger.h
 
b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/logger.h
deleted file mode 100644
index 5f8619cbb9..0000000000
--- 
a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/logger.h
+++ /dev/null
@@ -1,67 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-#pragma once
-
-#include <functional>
-#include <string>
-
-#include <spdlog/fmt/bundled/format.h>
-
-#define __LAZY_LOG(LEVEL, ...)                                         \
-  do {                                                                 \
-    driver::odbcabstraction::Logger* logger =                          \
-        driver::odbcabstraction::Logger::GetInstance();                \
-    if (logger) {                                                      \
-      logger->log(driver::odbcabstraction::LogLevel::LogLevel_##LEVEL, \
-                  [&]() { return fmt::format(__VA_ARGS__); });         \
-    }                                                                  \
-  } while (0)
-#define LOG_DEBUG(...) __LAZY_LOG(DEBUG, __VA_ARGS__)
-#define LOG_INFO(...) __LAZY_LOG(INFO, __VA_ARGS__)
-#define LOG_ERROR(...) __LAZY_LOG(ERROR, __VA_ARGS__)
-#define LOG_TRACE(...) __LAZY_LOG(TRACE, __VA_ARGS__)
-#define LOG_WARN(...) __LAZY_LOG(WARN, __VA_ARGS__)
-
-namespace driver {
-namespace odbcabstraction {
-
-enum LogLevel {
-  LogLevel_TRACE,
-  LogLevel_DEBUG,
-  LogLevel_INFO,
-  LogLevel_WARN,
-  LogLevel_ERROR,
-  LogLevel_OFF
-};
-
-class Logger {
- protected:
-  Logger() = default;
-
- public:
-  static Logger* GetInstance();
-  static void SetInstance(std::unique_ptr<Logger> logger);
-
-  virtual ~Logger() = default;
-
-  virtual void log(LogLevel level,
-                   const std::function<std::string(void)>& build_message) = 0;
-};
-
-}  // namespace odbcabstraction
-}  // namespace driver
diff --git 
a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/spd_logger.h
 
b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/spd_logger.h
deleted file mode 100644
index 08672b9e7c..0000000000
--- 
a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/spd_logger.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-#pragma once
-
-#include "odbcabstraction/logger.h"
-
-#include <cstdint>
-#include <string>
-
-#include <spdlog/spdlog.h>
-
-namespace driver {
-namespace odbcabstraction {
-
-class SPDLogger : public Logger {
- protected:
-  std::shared_ptr<spdlog::logger> logger_;
-
- public:
-  static constexpr std::string_view LOG_LEVEL = "LogLevel";
-  static constexpr std::string_view LOG_PATH = "LogPath";
-  static constexpr std::string_view MAXIMUM_FILE_SIZE = "MaximumFileSize";
-  static constexpr std::string_view FILE_QUANTITY = "FileQuantity";
-  static constexpr std::string_view LOG_ENABLED = "LogEnabled";
-
-  SPDLogger() = default;
-  ~SPDLogger() = default;
-  SPDLogger(SPDLogger& other) = delete;
-
-  void operator=(const SPDLogger&) = delete;
-  void init(int64_t fileQuantity, int64_t maxFileSize, const std::string& 
fileNamePrefix,
-            LogLevel level);
-
-  void log(LogLevel level,
-           const std::function<std::string(void)>& build_message) override;
-};
-
-}  // namespace odbcabstraction
-}  // namespace driver
diff --git 
a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/utils.h 
b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/utils.h
index cc848baa0f..5e541a1d45 100644
--- 
a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/utils.h
+++ 
b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/utils.h
@@ -17,10 +17,8 @@
 
 #pragma once
 
-#include 
<arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/logger.h>
-#include 
<arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/spi/connection.h>
-#include <boost/algorithm/string.hpp>
 #include <string>
+#include 
"arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/spi/connection.h"
 
 namespace driver {
 namespace odbcabstraction {
@@ -51,8 +49,5 @@ boost::optional<bool> AsBool(const 
Connection::ConnPropertyMap& connPropertyMap,
 boost::optional<int32_t> AsInt32(int32_t min_value,
                                  const Connection::ConnPropertyMap& 
connPropertyMap,
                                  const std::string_view& property_name);
-
-void ReadConfigFile(PropertyMap& properties, const std::string& 
configFileName);
-
 }  // namespace odbcabstraction
 }  // namespace driver
diff --git a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/logger.cc 
b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/logger.cc
deleted file mode 100644
index edace64cf6..0000000000
--- a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/logger.cc
+++ /dev/null
@@ -1,32 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-#include 
<arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/logger.h>
-
-namespace driver {
-namespace odbcabstraction {
-
-static std::unique_ptr<Logger> odbc_logger_ = nullptr;
-
-Logger* Logger::GetInstance() { return odbc_logger_.get(); }
-
-void Logger::SetInstance(std::unique_ptr<Logger> logger) {
-  odbc_logger_ = std::move(logger);
-}
-
-}  // namespace odbcabstraction
-}  // namespace driver
diff --git a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/spd_logger.cc 
b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/spd_logger.cc
deleted file mode 100644
index 322ae5e5da..0000000000
--- a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/spd_logger.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-#include "odbcabstraction/spd_logger.h"
-
-#include "odbcabstraction/logger.h"
-
-#include <spdlog/async.h>
-#include <spdlog/sinks/rotating_file_sink.h>
-#include <spdlog/spdlog.h>
-
-#include <cstdint>
-
-namespace driver {
-namespace odbcabstraction {
-namespace {
-inline spdlog::level::level_enum ToSpdLogLevel(LogLevel level) {
-  switch (level) {
-    case LogLevel_TRACE:
-      return spdlog::level::trace;
-    case LogLevel_DEBUG:
-      return spdlog::level::debug;
-    case LogLevel_INFO:
-      return spdlog::level::info;
-    case LogLevel_WARN:
-      return spdlog::level::warn;
-    case LogLevel_ERROR:
-      return spdlog::level::err;
-    default:
-      return spdlog::level::off;
-  }
-}
-}  // namespace
-
-void SPDLogger::init(int64_t fileQuantity, int64_t maxFileSize,
-                     const std::string& fileNamePrefix, LogLevel level) {
-  logger_ = spdlog::rotating_logger_mt<spdlog::async_factory>(
-      "ODBC Logger", fileNamePrefix, maxFileSize, fileQuantity);
-
-  logger_->set_level(ToSpdLogLevel(level));
-}
-
-void SPDLogger::log(LogLevel level,
-                    const std::function<std::string(void)>& build_message) {
-  auto level_set = logger_->level();
-  spdlog::level::level_enum spdlog_level = ToSpdLogLevel(level);
-  if (level_set == spdlog::level::off || level_set > spdlog_level) {
-    return;
-  }
-
-  const std::string& message = build_message();
-  logger_->log(spdlog_level, message);
-}
-
-}  // namespace odbcabstraction
-}  // namespace driver
diff --git a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/utils.cc 
b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/utils.cc
index f1d2d14744..d76b341f12 100644
--- a/cpp/src/arrow/flight/sql/odbc/odbcabstraction/utils.cc
+++ b/cpp/src/arrow/flight/sql/odbc/odbcabstraction/utils.cc
@@ -19,13 +19,7 @@
 
 #include 
"arrow/flight/sql/odbc/odbcabstraction/include/odbcabstraction/utils.h"
 
-#include <fstream>
-#include <sstream>
-
 #include <boost/algorithm/string/predicate.hpp>
-#include <boost/token_functions.hpp>
-#include <boost/tokenizer.hpp>
-#include <iostream>
 
 namespace driver {
 namespace odbcabstraction {
@@ -81,36 +75,5 @@ std::string GetModulePath() {
   return std::string(path.begin(), path.begin() + dirname_length);
 }
 
-void ReadConfigFile(PropertyMap& properties, const std::string& 
config_file_name) {
-  auto config_path = GetModulePath();
-
-  std::ifstream config_file;
-  auto config_file_path = config_path + "/" + config_file_name;
-  config_file.open(config_file_path);
-
-  if (config_file.fail()) {
-    auto error_msg = "Arrow Flight SQL ODBC driver config file not found on 
\"" +
-                     config_file_path + "\"";
-    std::cerr << error_msg << std::endl;
-
-    throw DriverException(error_msg);
-  }
-
-  std::string temp_config;
-
-  boost::char_separator<char> separator("=");
-  while (config_file.good()) {
-    config_file >> temp_config;
-    boost::tokenizer<boost::char_separator<char>> tokenizer(temp_config, 
separator);
-
-    auto iterator = tokenizer.begin();
-
-    std::string key = *iterator;
-    std::string value = *++iterator;
-
-    properties[key] = std::move(value);
-  }
-}
-
 }  // namespace odbcabstraction
 }  // namespace driver
diff --git a/cpp/vcpkg.json b/cpp/vcpkg.json
index 95e6ac8307..68f20663b5 100644
--- a/cpp/vcpkg.json
+++ b/cpp/vcpkg.json
@@ -54,7 +54,6 @@
     "rapidjson",
     "re2",
     "snappy",
-    "spdlog",
     "sqlite3",
     "thrift",
     "utf8proc",

Reply via email to