99
1010#include " utils.hpp"
1111
12- enum class log_level : std::uint32_t
13- {
12+ enum class log_level : std::uint32_t {
1413 LOG_FATAL,
1514 LOG_ERROR,
1615 LOG_WARN,
@@ -20,37 +19,33 @@ enum class log_level : std::uint32_t
2019 LOG_NOPREFIX, // keep this last
2120};
2221
23- class logger
24- {
22+ class logger {
2523public:
2624
27- logger ( const std::wstring_view& title_name = {} )
28- {
25+ logger (const std::wstring_view & title_name = {}) {
26+
2927 AllocConsole ();
30- AttachConsole ( GetCurrentProcessId () );
28+ AttachConsole (GetCurrentProcessId ());
3129
32- if ( !title_name.empty () )
33- {
34- SetConsoleTitle ( title_name.data () );
30+ if (!title_name.empty ()) {
31+ SetConsoleTitle (title_name.data ());
3532 }
3633
37- FILE* in = nullptr ;
38- FILE* out = nullptr ;
34+ FILE * in = nullptr ;
35+ FILE * out = nullptr ;
3936
40- freopen_s ( &in, " conin$" , " r" , stdin );
41- freopen_s ( &out, " conout$" , " w" , stdout );
42- freopen_s ( &out, " conout$" , " w" , stderr );
37+ freopen_s (&in, " conin$" , " r" , stdin);
38+ freopen_s (&out, " conout$" , " w" , stdout);
39+ freopen_s (&out, " conout$" , " w" , stderr);
4340
44- console_handle = GetStdHandle ( STD_OUTPUT_HANDLE );
41+ console_handle = GetStdHandle (STD_OUTPUT_HANDLE);
4542 }
4643
47- ~logger ()
48- {
44+ ~logger () {
4945 FreeConsole ();
5046 }
5147
52- enum class console_colors : std::uint8_t
53- {
48+ enum class console_colors : std::uint8_t {
5449 BLACK,
5550 DARK_BLUE,
5651 DARK_GREEN,
@@ -69,8 +64,8 @@ class logger
6964 WHITE,
7065 };
7166
72- struct log_type_info_t
73- {
67+ struct log_type_info_t {
68+
7469 std::string prefix{};
7570 console_colors fg = console_colors::WHITE;
7671 console_colors bg = console_colors::BLACK;
@@ -79,92 +74,90 @@ class logger
7974 };
8075
8176 template <typename ... arg>
82- void print_colored ( console_colors fg, console_colors bg, bool newline, std::string_view fmt, arg ... args )
83- {
84- std::unique_lock< decltype ( m )> lock ( m );
77+ void print_colored (console_colors fg, console_colors bg, bool newline, std::string_view fmt, arg ... args) {
8578
86- const auto txt = utils::format_string ( fmt, args... );
79+ std::unique_lock< decltype (m)> lock (m );
8780
88- set_console_color ( fg, bg );
81+ const auto txt = utils::format_string (fmt, args...);
82+
83+ set_console_color (fg, bg);
8984
9085 std::cout << txt.c_str ();
9186
92- set_console_color ( console_colors::WHITE, console_colors::BLACK );
87+ set_console_color (console_colors::WHITE, console_colors::BLACK);
9388
9489 if (newline) {
9590 std::cout << std::endl;
9691 }
9792 }
9893
9994 template < typename ... arg >
100- void print ( log_level level, std::string_view fmt, arg ... args ) {
101- std::unique_lock< decltype ( m )> lock ( m );
95+ void print (log_level level, std::string_view fmt, arg ... args) {
96+
97+ std::unique_lock< decltype (m)> lock (m);
10298
10399 const auto &info = console_type_info[level];
104- const auto txt = utils::format_string ( fmt, args... );
100+ const auto txt = utils::format_string (fmt, args...);
105101
106- set_console_color ( info.fg , info.bg );
102+ set_console_color (info.fg , info.bg );
107103
108- if ( level < log_level::LOG_NOPREFIX ) {
104+ if (level < log_level::LOG_NOPREFIX) {
109105 std::cout << info.prefix ;
110106 }
111107
112108 std::cout << txt.c_str ();
113109
114- set_console_color ( console_colors::WHITE, console_colors::BLACK );
110+ set_console_color (console_colors::WHITE, console_colors::BLACK);
115111
116112 std::cout << std::endl;
117113 }
118114
119115 template < typename ... arg >
120- void print_with_func ( log_level level, std::string_view func_name, std::string_view fmt, arg ... args )
121- {
122- std::unique_lock< decltype ( m )> lock ( m );
116+ void print_with_func (log_level level, std::string_view func_name, std::string_view fmt, arg ... args) {
123117
124- const auto &info = console_type_info[ level ];
125- const auto txt = utils::format_string ( fmt, args... );
118+ std::unique_lock< decltype (m)> lock (m);
126119
127- set_console_color ( info.fg , info.bg );
120+ const auto &info = console_type_info[level];
121+ const auto txt = utils::format_string (fmt, args...);
122+
123+ set_console_color (info.fg , info.bg );
128124
129- if ( level < log_level::LOG_NOPREFIX )
130- {
125+ if (level < log_level::LOG_NOPREFIX) {
131126 std::cout << info.prefix ;
132127 }
133128
134129 std::cout << " [ " << func_name.data () << " ] " << txt.c_str ();
135130
136- set_console_color ( console_colors::WHITE, console_colors::BLACK );
131+ set_console_color (console_colors::WHITE, console_colors::BLACK);
137132
138133 std::cout << std::endl;
139134 }
140135
141136private:
142- inline bool set_console_color ( const console_colors fg, const console_colors bg )
143- {
144- if ( console_handle != INVALID_HANDLE_VALUE )
145- {
146- WORD color = (uint8_t )fg | ( (uint8_t )bg << 4 );
147- return SetConsoleTextAttribute ( console_handle, color );
137+ inline bool set_console_color (const console_colors fg, const console_colors bg) {
138+
139+ if (console_handle != INVALID_HANDLE_VALUE) {
140+ WORD color = (uint8_t )fg | ((uint8_t )bg << 4 );
141+ return SetConsoleTextAttribute (console_handle, color);
148142 }
149143
150144 return false ;
151145 }
152146
153- std::unordered_map< log_level, log_type_info_t > console_type_info =
154- {
155- { log_level::LOG_FATAL, { " [ ! ] " , console_colors::RED, console_colors::WHITE } },
156- { log_level::LOG_ERROR, { " [ - ] " , console_colors::RED, console_colors::BLACK } },
157- { log_level::LOG_WARN, { " [ # ] " , console_colors::BLACK, console_colors::YELLOW } },
158- { log_level::LOG_OK, { " [ + ] " , console_colors::GREEN, console_colors::BLACK } },
159- { log_level::LOG_INFO, { " [ ~ ] " , console_colors::WHITE, console_colors::BLACK } },
160- { log_level::LOG_DEBUG, { " " , console_colors::DARK_GRAY, console_colors::BLACK } },
147+ std::unordered_map< log_level, log_type_info_t > console_type_info = {
148+ {log_level::LOG_FATAL, {" [ ! ] " , console_colors::RED, console_colors::WHITE}},
149+ {log_level::LOG_ERROR, {" [ - ] " , console_colors::RED, console_colors::BLACK}},
150+ {log_level::LOG_WARN, {" [ # ] " , console_colors::BLACK, console_colors::YELLOW}},
151+ {log_level::LOG_OK, {" [ + ] " , console_colors::GREEN, console_colors::BLACK}},
152+ {log_level::LOG_INFO, {" [ ~ ] " , console_colors::WHITE, console_colors::BLACK}},
153+ {log_level::LOG_DEBUG, {" " , console_colors::DARK_GRAY, console_colors::BLACK}},
161154 };
162155
163156 std::mutex m;
164157 HANDLE console_handle = INVALID_HANDLE_VALUE;
165158};
166159
167- inline auto g_logger = std::make_unique< logger >( L" ~ rpgmaker scraper by nit ~" );
160+ inline auto g_logger = std::make_unique< logger >(L" ~ rpgmaker scraper by nit ~" );
168161#define log_colored_nnl (fg, bg, ...) g_logger->print_colored (fg, bg, false , __VA_ARGS__)
169162#define log_colored ( fg, bg, ... ) g_logger->print_colored ( fg, bg, true , __VA_ARGS__ )
170163#define _log (log_type, ...) g_logger->print ( log_type, __VA_ARGS__ )
0 commit comments