Improved logging system and using spdlog 1.4.2
This commit is contained in:
parent
e9fd1e06cd
commit
9862c2a926
@ -90,6 +90,10 @@ int main(int argc, char** argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
server.stop();
|
||||||
|
|
||||||
|
log_general()->info("Server stopped");
|
||||||
logger::shutdown();
|
logger::shutdown();
|
||||||
|
libevent_global_shutdown();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
@ -1,13 +1,17 @@
|
|||||||
#include "./logger.h"
|
#include "./logger.h"
|
||||||
|
|
||||||
#include <experimental/filesystem>
|
#include <experimental/filesystem>
|
||||||
#include <spdlog/sinks/file_sinks.h>
|
#include <spdlog/async.h>
|
||||||
|
#include <spdlog/sinks/daily_file_sink.h>
|
||||||
#include <spdlog/sinks/stdout_sinks.h>
|
#include <spdlog/sinks/stdout_sinks.h>
|
||||||
|
#include <spdlog/sinks/stdout_color_sinks.h>
|
||||||
|
|
||||||
namespace fs = std::experimental::filesystem;
|
namespace fs = std::experimental::filesystem;
|
||||||
|
|
||||||
const static std::string log_folder{"logs/"};
|
const static std::string log_folder{"logs/"};
|
||||||
|
|
||||||
|
std::shared_ptr<spdlog::details::thread_pool> log_thread{nullptr};
|
||||||
|
|
||||||
std::shared_ptr<spdlog::logger> logger::logger_general{nullptr};
|
std::shared_ptr<spdlog::logger> logger::logger_general{nullptr};
|
||||||
std::shared_ptr<spdlog::logger> logger::logger_network{nullptr};
|
std::shared_ptr<spdlog::logger> logger::logger_network{nullptr};
|
||||||
std::shared_ptr<spdlog::logger> logger::logger_dns{nullptr};
|
std::shared_ptr<spdlog::logger> logger::logger_dns{nullptr};
|
||||||
@ -22,7 +26,6 @@ bool logger::setup(std::string& error) {
|
|||||||
error = "failed to create log folder at " + log_folder + ": " + std::string{ex.what()};
|
error = "failed to create log folder at " + log_folder + ": " + std::string{ex.what()};
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<spdlog::sink_ptr> sinks{};
|
std::vector<spdlog::sink_ptr> sinks{};
|
||||||
sinks.reserve(2);
|
sinks.reserve(2);
|
||||||
{
|
{
|
||||||
@ -30,14 +33,15 @@ bool logger::setup(std::string& error) {
|
|||||||
file_sink->set_level(spdlog::level::trace);
|
file_sink->set_level(spdlog::level::trace);
|
||||||
sinks.push_back(file_sink);
|
sinks.push_back(file_sink);
|
||||||
|
|
||||||
auto console_sink = std::make_shared<spdlog::sinks::stdout_sink_st>();
|
auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_st>();
|
||||||
console_sink->set_level(spdlog::level::trace);
|
console_sink->set_level(spdlog::level::trace);
|
||||||
sinks.push_back(console_sink);
|
sinks.push_back(console_sink);
|
||||||
}
|
}
|
||||||
|
|
||||||
spdlog::register_logger(logger_general = std::make_shared<spdlog::async_logger>("general", std::begin(sinks), std::end(sinks), 8192, spdlog::async_overflow_policy::block_retry));
|
log_thread = std::make_shared<spdlog::details::thread_pool>(1024, 1);
|
||||||
spdlog::register_logger(logger_network = std::make_shared<spdlog::async_logger>("network", std::begin(sinks), std::end(sinks), 8192, spdlog::async_overflow_policy::block_retry));
|
spdlog::register_logger(logger_general = std::make_shared<spdlog::async_logger>("general", std::begin(sinks), std::end(sinks), log_thread, spdlog::async_overflow_policy::block));
|
||||||
spdlog::register_logger(logger_dns = std::make_shared<spdlog::async_logger>("dns ", std::begin(sinks), std::end(sinks), 8192, spdlog::async_overflow_policy::block_retry));
|
spdlog::register_logger(logger_network = std::make_shared<spdlog::async_logger>("network", std::begin(sinks), std::end(sinks), log_thread, spdlog::async_overflow_policy::block));
|
||||||
|
spdlog::register_logger(logger_dns = std::make_shared<spdlog::async_logger>("dns ", std::begin(sinks), std::end(sinks), log_thread, spdlog::async_overflow_policy::block));
|
||||||
|
|
||||||
spdlog::apply_all([](const std::shared_ptr<spdlog::logger>& l) {
|
spdlog::apply_all([](const std::shared_ptr<spdlog::logger>& l) {
|
||||||
l->set_level(spdlog::level::trace);
|
l->set_level(spdlog::level::trace);
|
||||||
|
@ -106,6 +106,9 @@ void DNSServer::stop() {
|
|||||||
|
|
||||||
event_free(this->event_base_ticker);
|
event_free(this->event_base_ticker);
|
||||||
this->event_base_ticker = nullptr;
|
this->event_base_ticker = nullptr;
|
||||||
|
|
||||||
|
event_base_free(this->event_base);
|
||||||
|
this->event_base = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DNSServer::bind(DNSServerBinding &binding, std::string &error) {
|
bool DNSServer::bind(DNSServerBinding &binding, std::string &error) {
|
||||||
|
@ -28,7 +28,7 @@ namespace ts::dns {
|
|||||||
int socket{0};
|
int socket{0};
|
||||||
std::string error{};
|
std::string error{};
|
||||||
|
|
||||||
inline bool active() const { return this->socket != 0; }
|
[[nodiscard]] inline bool active() const { return this->socket != 0; }
|
||||||
|
|
||||||
std::mutex io_lock{};
|
std::mutex io_lock{};
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ namespace ts::dns {
|
|||||||
class DNSHandler;
|
class DNSHandler;
|
||||||
class DNSServer {
|
class DNSServer {
|
||||||
public:
|
public:
|
||||||
DNSServer(std::shared_ptr<DNSHandler> handler) : handler{std::move(handler)} {};
|
explicit DNSServer(std::shared_ptr<DNSHandler> handler) : handler{std::move(handler)} {};
|
||||||
virtual ~DNSServer();
|
virtual ~DNSServer();
|
||||||
|
|
||||||
bool start(const std::vector<sockaddr_storage>& /* bindings */, std::string& /* error */);
|
bool start(const std::vector<sockaddr_storage>& /* bindings */, std::string& /* error */);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user