refactor
This commit is contained in:
parent
5a928208fd
commit
de6a7beb5e
@ -24,16 +24,17 @@
|
||||
|
||||
namespace repertory {
|
||||
enum class event_level {
|
||||
critical,
|
||||
error,
|
||||
warn,
|
||||
normal,
|
||||
info,
|
||||
debug,
|
||||
verbose,
|
||||
trace,
|
||||
};
|
||||
|
||||
auto event_level_from_string(std::string level) -> event_level;
|
||||
|
||||
auto event_level_to_string(const event_level &level) -> std::string;
|
||||
auto event_level_to_string(event_level level) -> std::string;
|
||||
|
||||
class event {
|
||||
protected:
|
||||
|
@ -72,7 +72,7 @@ app_config::app_config(const provider_type &prov,
|
||||
enable_mount_manager_(false),
|
||||
#endif
|
||||
enable_remote_mount_(false),
|
||||
event_level_(event_level::normal),
|
||||
event_level_(event_level::info),
|
||||
eviction_delay_mins_(default_eviction_delay_mins),
|
||||
eviction_uses_accessed_time_(false),
|
||||
high_freq_interval_secs_(default_high_freq_interval_secs),
|
||||
@ -259,8 +259,7 @@ auto app_config::get_json() const -> json {
|
||||
{"UsePathStyle", s3_config_.use_path_style},
|
||||
{"UseRegionInURL", s3_config_.use_region_in_url},
|
||||
}},
|
||||
{"Version", version_}
|
||||
};
|
||||
{"Version", version_}};
|
||||
|
||||
if (prov_ == provider_type::encrypt) {
|
||||
ret.erase("ChunkDownloaderTimeoutSeconds");
|
||||
|
@ -680,7 +680,7 @@ void fuse_base::raise_fuse_event(std::string function_name,
|
||||
}
|
||||
|
||||
if (((config_.get_event_level() >= fuse_event::level) && (ret != 0)) ||
|
||||
(config_.get_event_level() >= event_level::verbose)) {
|
||||
(config_.get_event_level() >= event_level::trace)) {
|
||||
event_system::instance().raise<fuse_event>(
|
||||
utils::string::right_trim(function_name, '_'), api_path, ret);
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ namespace repertory::remote_fuse {
|
||||
if (config_.get_enable_drive_events() && \
|
||||
(((config_.get_event_level() >= remote_fuse_server_event::level) && \
|
||||
(ret < 0)) || \
|
||||
(config_.get_event_level() >= event_level::verbose))) \
|
||||
(config_.get_event_level() >= event_level::trace))) \
|
||||
event_system::instance().raise<remote_fuse_server_event>(func, file, ret)
|
||||
|
||||
// clang-format off
|
||||
|
@ -34,7 +34,7 @@ namespace repertory::remote_winfsp {
|
||||
if (config_.get_enable_drive_events() && \
|
||||
(((config_.get_event_level() >= remote_winfsp_client_event::level) && \
|
||||
(ret != STATUS_SUCCESS)) || \
|
||||
(config_.get_event_level() >= event_level::verbose))) \
|
||||
(config_.get_event_level() >= event_level::trace))) \
|
||||
event_system::instance().raise<remote_winfsp_client_event>(func, file, ret)
|
||||
|
||||
// clang-format off
|
||||
|
@ -52,7 +52,7 @@ namespace repertory::remote_winfsp {
|
||||
if (config_.get_enable_drive_events() && \
|
||||
(((config_.get_event_level() >= remote_winfsp_server_event::level) && \
|
||||
(ret != STATUS_SUCCESS)) || \
|
||||
(config_.get_event_level() >= event_level::verbose))) \
|
||||
(config_.get_event_level() >= event_level::trace))) \
|
||||
event_system::instance().raise<remote_winfsp_server_event>(func, file, ret)
|
||||
|
||||
// clang-format off
|
||||
|
@ -51,7 +51,7 @@ E_SIMPLE3(winfsp_event, debug, true,
|
||||
if (config_.get_enable_drive_events() && \
|
||||
(((config_.get_event_level() >= winfsp_event::level) && \
|
||||
(ret != STATUS_SUCCESS)) || \
|
||||
(config_.get_event_level() >= event_level::verbose))) \
|
||||
(config_.get_event_level() >= event_level::trace))) \
|
||||
event_system::instance().raise<winfsp_event>(func, file, ret)
|
||||
|
||||
winfsp_drive::winfsp_service::winfsp_service(
|
||||
|
@ -21,6 +21,11 @@
|
||||
*/
|
||||
#include "events/consumers/logging_consumer.hpp"
|
||||
|
||||
#include "events/events.hpp"
|
||||
#include "spdlog/spdlog.h"
|
||||
#include "spdlog/async.h"
|
||||
#include "spdlog/sinks/rotating_file_sink.h"
|
||||
#include "spdlog/sinks/stdout_color_sinks.h"
|
||||
#include "utils/path_utils.hpp"
|
||||
|
||||
namespace repertory {
|
||||
@ -32,21 +37,45 @@ logging_consumer::logging_consumer(event_level level, std::string log_directory)
|
||||
[this](const event_level_changed &changed) {
|
||||
event_level_ = event_level_from_string(
|
||||
changed.get_new_event_level().get<std::string>());
|
||||
switch (event_level_) {}
|
||||
});
|
||||
|
||||
spdlog::init_thread_pool(8192, 1);
|
||||
std::vector<spdlog::sink_ptr> sinks{
|
||||
std::make_shared<spdlog::sinks::stdout_color_sink_mt>(),
|
||||
std::make_shared<spdlog::sinks::rotating_file_sink_mt>(
|
||||
utils::path::combine(log_directory_, {"repertory.log"}),
|
||||
MAX_LOG_FILE_SIZE, MAX_LOG_FILES),
|
||||
};
|
||||
|
||||
spdlog::register_logger(std::make_shared<spdlog::async_logger>(
|
||||
"logger", sinks.begin(), sinks.end(), spdlog::thread_pool(),
|
||||
spdlog::async_overflow_policy::block));
|
||||
}
|
||||
|
||||
logging_consumer::~logging_consumer() { E_CONSUMER_RELEASE(); }
|
||||
|
||||
void logging_consumer::process_event(const event &event) {
|
||||
/* auto msg = ([&]() -> std::string {
|
||||
struct tm local_time {};
|
||||
utils::get_local_time_now(local_time);
|
||||
|
||||
std::stringstream ss;
|
||||
ss << std::put_time(&local_time, "%F %T") << "|"
|
||||
<< event_level_to_string(event->get_event_level()).c_str() << "|"
|
||||
<< event->get_single_line().c_str() << std::endl;
|
||||
return ss.str();
|
||||
})(); */
|
||||
switch (event.get_event_level()) {
|
||||
case event_level::critical:
|
||||
spdlog::critical(event.get_single_line());
|
||||
break;
|
||||
case event_level::error:
|
||||
spdlog::error(event.get_single_line());
|
||||
break;
|
||||
case event_level::warn:
|
||||
spdlog::warn(event.get_single_line());
|
||||
break;
|
||||
case event_level::info:
|
||||
spdlog::info(event.get_single_line());
|
||||
break;
|
||||
case event_level::debug:
|
||||
spdlog::debug(event.get_single_line());
|
||||
break;
|
||||
case event_level::trace:
|
||||
default:
|
||||
spdlog::trace(event.get_single_line());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} // namespace repertory
|
||||
|
@ -26,34 +26,49 @@
|
||||
namespace repertory {
|
||||
auto event_level_from_string(std::string level) -> event_level {
|
||||
level = utils::string::to_lower(level);
|
||||
if (level == "critical" || level == "event_level::critical") {
|
||||
return event_level::critical;
|
||||
}
|
||||
|
||||
if (level == "debug" || level == "event_level::debug") {
|
||||
return event_level::debug;
|
||||
} else if (level == "warn" || level == "event_level::warn") {
|
||||
return event_level::warn;
|
||||
} else if (level == "normal" || level == "event_level::normal") {
|
||||
return event_level::normal;
|
||||
} else if (level == "error" || level == "event_level::error") {
|
||||
return event_level::error;
|
||||
} else if (level == "verbose" || level == "event_level::verbose") {
|
||||
return event_level::verbose;
|
||||
}
|
||||
return event_level::normal;
|
||||
|
||||
if (level == "warn" || level == "event_level::warn") {
|
||||
return event_level::warn;
|
||||
}
|
||||
|
||||
if (level == "info" || level == "event_level::info") {
|
||||
return event_level::info;
|
||||
}
|
||||
|
||||
if (level == "error" || level == "event_level::error") {
|
||||
return event_level::error;
|
||||
}
|
||||
|
||||
if (level == "trace" || level == "event_level::trace") {
|
||||
return event_level::trace;
|
||||
}
|
||||
|
||||
return event_level::info;
|
||||
}
|
||||
|
||||
auto event_level_to_string(const event_level &level) -> std::string {
|
||||
auto event_level_to_string(event_level level) -> std::string {
|
||||
switch (level) {
|
||||
case event_level::critical:
|
||||
return "critical";
|
||||
case event_level::debug:
|
||||
return "debug";
|
||||
case event_level::error:
|
||||
return "error";
|
||||
case event_level::normal:
|
||||
return "normal";
|
||||
case event_level::info:
|
||||
return "info";
|
||||
case event_level::warn:
|
||||
return "warn";
|
||||
case event_level::verbose:
|
||||
return "verbose";
|
||||
case event_level::trace:
|
||||
return "trace";
|
||||
default:
|
||||
return "normal";
|
||||
return "info";
|
||||
}
|
||||
}
|
||||
} // namespace repertory
|
||||
|
@ -38,12 +38,12 @@ void polling::frequency_thread(
|
||||
if (kv.second.freq == freq) {
|
||||
futures.emplace_back(
|
||||
std::async(std::launch::async, [this, &freq, kv]() -> void {
|
||||
if (config_->get_event_level() == event_level::verbose ||
|
||||
if (config_->get_event_level() == event_level::trace ||
|
||||
freq != frequency::second) {
|
||||
event_system::instance().raise<polling_item_begin>(kv.first);
|
||||
}
|
||||
kv.second.action();
|
||||
if (config_->get_event_level() == event_level::verbose ||
|
||||
if (config_->get_event_level() == event_level::trace ||
|
||||
freq != frequency::second) {
|
||||
event_system::instance().raise<polling_item_end>(kv.first);
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ protected:
|
||||
.empty());
|
||||
EXPECT_FALSE(
|
||||
config->set_value_by_name("S3Config.Bucket", "repertory").empty());
|
||||
config->set_event_level(event_level::verbose);
|
||||
config->set_event_level(event_level::trace);
|
||||
config->set_enable_drive_events(true);
|
||||
event_system::instance().start();
|
||||
|
||||
|
@ -541,7 +541,7 @@ TEST(fuse_drive, all_tests) {
|
||||
app_config src_cfg(provider_type::s3,
|
||||
utils::path::combine(get_test_dir(), {"storj"}));
|
||||
config_ptr->set_enable_drive_events(true);
|
||||
config_ptr->set_event_level(event_level::verbose);
|
||||
config_ptr->set_event_level(event_level::trace);
|
||||
config_ptr->set_s3_config(src_cfg.get_s3_config());
|
||||
}
|
||||
|
||||
|
@ -926,7 +926,7 @@ TEST(remote_fuse, all_tests) {
|
||||
config.set_remote_port(port);
|
||||
config.set_remote_token("testtoken");
|
||||
config.set_enable_drive_events(true);
|
||||
config.set_event_level(event_level::verbose);
|
||||
config.set_event_level(event_level::trace);
|
||||
|
||||
event_system::instance().start();
|
||||
#if defined(_WIN32)
|
||||
|
@ -498,7 +498,7 @@ TEST(remote_winfsp, all_tests) {
|
||||
config.set_remote_port(port);
|
||||
config.set_remote_token("testtoken");
|
||||
config.set_enable_drive_events(true);
|
||||
config.set_event_level(event_level::verbose);
|
||||
config.set_event_level(event_level::trace);
|
||||
|
||||
event_system::instance().start();
|
||||
#if defined(_WIN32)
|
||||
|
Loading…
x
Reference in New Issue
Block a user