2121
2222#include " pch.hpp"
2323
24- #ifdef DEBUG
25- #include < spdlog/sinks/stdout_color_sinks.h>
26- #endif
2724#include " websocket_proxy.h"
2825#include < websocket_proxy/version.h>
2926#include < csignal>
3330#endif
3431
3532using namespace websocket_proxy ;
36-
37- void atexit_hanlder ()
38- {
39- spdlog::shutdown ();
40- }
33+ using namespace slick_logger ;
4134
4235/* *
4336* Usage:
@@ -50,20 +43,19 @@ void atexit_hanlder()
5043*/
5144int main (int argc, char * argv[])
5245{
53- std::atexit (atexit_hanlder);
54- spdlog::init_thread_pool (8192 , 1 );
46+ Logger::instance ().clear_sinks ();
47+ LogConfig config;
48+ config.queue_size = 65536 ;
49+
5550#ifdef DEBUG
56- auto stdout_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
57- auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>(" ./log/WebsocketProxy.log" );
58- std::vector<spdlog::sink_ptr> sinks {stdout_sink, file_sink};
59- auto logger = std::make_shared<spdlog::async_logger>(" websocket_proxy_logger" , sinks.begin (), sinks.end (), spdlog::thread_pool (), spdlog::async_overflow_policy::overrun_oldest);
60- spdlog::set_default_logger (logger);
61- spdlog::flush_on (spdlog::level::trace);
62- #else
63- auto async_sink = std::make_shared<spdlog::sinks::rotating_file_sink_mt>(" ./Log/WebsocketProxy.log" , 524288000 , 5 );
64- auto async_logger = std::make_shared<spdlog::async_logger>(" async_logger" , async_sink, spdlog::thread_pool (), spdlog::async_overflow_policy::overrun_oldest);
65- spdlog::set_default_logger (async_logger);
51+ config.sinks .push_back (std::make_shared<ConsoleSink>(true , true ));
52+ config.min_level = slick_logger::LogLevel::L_TRACE;
6653#endif
54+ // Configure rotation
55+ RotationConfig rotation;
56+ rotation.max_file_size = 200 * 1024 * 1024 ; // 200MB
57+ rotation.max_files = 10 ; // keep last 10 files
58+ config.sinks .push_back (std::make_shared<RotatingFileSink>(" ./Log/WebsocketProxy.log" , rotation));
6759
6860 uint32_t server_queue_size = 1 << 24 ; // 16MB
6961 [[maybe_unused]] bool log_level_set = false ;
@@ -73,28 +65,25 @@ int main(int argc, char* argv[])
7365 std::transform (l.begin (), l.end (), l.begin (), [](char c){ return std::tolower (c); });
7466 log_level_set = true ;
7567 if (l == " off" ) {
76- spdlog::set_level (spdlog::level::off) ;
68+ config. min_level = slick_logger::LogLevel::L_OFF ;
7769 }
7870 else if (l == " critical" ) {
79- spdlog::set_level (spdlog::level::critical);
80- spdlog::flush_on (spdlog::level::critical);
71+ config.min_level = slick_logger::LogLevel::L_FATAL;
8172 }
8273 else if (l == " error" ) {
83- spdlog::set_level (spdlog::level::err);
84- spdlog::flush_on (spdlog::level::err);
74+ config.min_level = slick_logger::LogLevel::L_ERROR;
8575 }
8676 else if (l == " warning" ) {
87- spdlog::set_level (spdlog::level::warn);
88- spdlog::flush_on (spdlog::level::warn);
77+ config.min_level = slick_logger::LogLevel::L_WARN;
8978 }
9079 else if (l == " info" ) {
91- spdlog::set_level (spdlog::level::info) ;
80+ config. min_level = slick_logger::LogLevel::L_INFO ;
9281 }
9382 else if (l == " debug" ) {
94- spdlog::set_level (spdlog::level::debug) ;
83+ config. min_level = slick_logger::LogLevel::L_DEBUG ;
9584 }
9685 else if (l == " trace" ) {
97- spdlog::set_level (spdlog::level::trace) ;
86+ config. min_level = slick_logger::LogLevel::L_TRACE ;
9887 }
9988 else {
10089 log_level_set = false ;
@@ -105,18 +94,10 @@ int main(int argc, char* argv[])
10594 }
10695 }
10796
108- #ifdef DEBUG
109- if (!log_level_set) {
110- spdlog::set_level (spdlog::level::trace);
111- }
112- #endif
113-
114- spdlog::set_pattern (" [%Y-%m-%d %H:%M:%S.%F][%t][%l][%s:%#] %v" );
115- spdlog::flush_every (std::chrono::seconds (2 ));
97+ Logger::instance ().init (config);
11698
117- SPDLOG_INFO (std::format (" Start WebsocketProxy {} ..." , VERSION));
99+ LOG_INFO (std::format (" Start WebsocketProxy {} ..." , VERSION));
118100 WebsocketProxy proxy (server_queue_size);
119101 proxy.run ();
120- SPDLOG_INFO (" WebsocketProxy Exit." );
121- spdlog::shutdown ();
102+ LOG_INFO (" WebsocketProxy Exit." );
122103}
0 commit comments