From cf59db9cee457d0c3d24ef689dcb03db06cf935a Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Thu, 25 Jul 2024 20:42:57 -0500 Subject: [PATCH] fix logging --- .../librepertory/src/drives/fuse/fuse_base.cpp | 15 +++++++++++++-- .../src/events/consumers/console_consumer.cpp | 8 ++------ .../src/events/consumers/logging_consumer.cpp | 11 ++++------- repertory/librepertory/src/initialize.cpp | 2 ++ 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/repertory/librepertory/src/drives/fuse/fuse_base.cpp b/repertory/librepertory/src/drives/fuse/fuse_base.cpp index 20828206..31aabfde 100644 --- a/repertory/librepertory/src/drives/fuse/fuse_base.cpp +++ b/repertory/librepertory/src/drives/fuse/fuse_base.cpp @@ -178,7 +178,11 @@ void fuse_base::destroy_(void *ptr) { execute_void_callback(function_name, [&]() { instance().destroy_impl(ptr); }); } -void fuse_base::destroy_impl(void * /* ptr */) { repertory::project_cleanup(); } +void fuse_base::destroy_impl(void * /* ptr */) { + if (not console_enabled_) { + repertory::project_cleanup(); + } +} void fuse_base::display_options( [[maybe_unused]] std::vector args) { @@ -356,7 +360,9 @@ auto fuse_base::init_impl([[maybe_unused]] struct fuse_conn_info *conn, auto fuse_base::init_impl(struct fuse_conn_info *conn) -> void * { #endif utils::file::change_to_process_directory(); - repertory::project_initialize(); + if (not console_enabled_) { + repertory::project_initialize(); + } #if defined(__APPLE__) conn->want |= FUSE_CAP_VOL_RENAME; @@ -413,6 +419,11 @@ auto fuse_base::mount(std::vector args) -> int { #if FUSE_USE_VERSION < 30 umask(0); #endif + + if (not console_enabled_) { + repertory::project_cleanup(); + } + ret = fuse_main( static_cast(fuse_argv.size()), reinterpret_cast(const_cast(fuse_argv.data())), diff --git a/repertory/librepertory/src/events/consumers/console_consumer.cpp b/repertory/librepertory/src/events/consumers/console_consumer.cpp index 164228e9..22ac714e 100644 --- a/repertory/librepertory/src/events/consumers/console_consumer.cpp +++ b/repertory/librepertory/src/events/consumers/console_consumer.cpp @@ -23,8 +23,8 @@ #include "events/events.hpp" #include "spdlog/async.h" -#include "spdlog/sinks/stdout_color_sinks.h" #include "spdlog/spdlog.h" +#include "spdlog/sinks/stdout_color_sinks.h" namespace repertory { console_consumer::console_consumer() : console_consumer(event_level::info) {} @@ -56,11 +56,7 @@ console_consumer::console_consumer(event_level level) { } }; - try { - spdlog::register_logger( - spdlog::create_async("console")); - } catch (...) { - } + spdlog::create_async("console"); set_level(level); diff --git a/repertory/librepertory/src/events/consumers/logging_consumer.cpp b/repertory/librepertory/src/events/consumers/logging_consumer.cpp index f86f7dc2..7aed316e 100644 --- a/repertory/librepertory/src/events/consumers/logging_consumer.cpp +++ b/repertory/librepertory/src/events/consumers/logging_consumer.cpp @@ -58,13 +58,10 @@ logging_consumer::logging_consumer(event_level level, } }; - try { - spdlog::register_logger( - spdlog::create_async( - "file", utils::path::combine(log_directory, {"repertory.log"}), - MAX_LOG_FILE_SIZE, MAX_LOG_FILES)); - } catch (...) { - } + spdlog::create_async( + "file", utils::path::combine(log_directory, {"repertory.log"}), + MAX_LOG_FILE_SIZE, MAX_LOG_FILES); + set_level(level); E_SUBSCRIBE_ALL(process_event); diff --git a/repertory/librepertory/src/initialize.cpp b/repertory/librepertory/src/initialize.cpp index 7eebc94a..8884e255 100644 --- a/repertory/librepertory/src/initialize.cpp +++ b/repertory/librepertory/src/initialize.cpp @@ -47,6 +47,7 @@ namespace repertory { auto project_initialize() -> bool { + spdlog::drop_all(); spdlog::flush_every(std::chrono::seconds(10)); #if defined(PROJECT_REQUIRE_ALPINE) && !defined(PROJECT_IS_MINGW) @@ -111,5 +112,6 @@ void project_cleanup() { #if defined(PROJECT_ENABLE_SQLITE) sqlite3_shutdown(); #endif // defined(PROJECT_ENABLE_SQLITE) + spdlog::shutdown(); } } // namespace repertory