Skip to content

Commit 3a2fce2

Browse files
committed
Improve logging
1 parent c767694 commit 3a2fce2

File tree

2 files changed

+76
-86
lines changed

2 files changed

+76
-86
lines changed

proxy/include/proxy/logging.hpp

Lines changed: 73 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,8 @@ namespace xlogger {
214214

215215

216216
inline bool global_logging___ = true;
217+
inline bool global_console_logging___ = true;
218+
inline bool global_write_logging___ = true;
217219
inline int64_t global_logfile_size___ = DEFAULT_LOG_MAXFILE_SIZE;
218220

219221

@@ -773,17 +775,9 @@ class auto_logger_file__
773775
return m_log_path.string();
774776
}
775777

776-
inline void logging(bool disable) noexcept
777-
{
778-
m_disable_write = disable;
779-
}
780-
781778
inline void write([[maybe_unused]] int64_t time,
782779
const char* str, std::streamsize size)
783780
{
784-
if (m_disable_write)
785-
return;
786-
787781
bool condition = false;
788782
auto hours = time / 1000 / 3600;
789783
auto last_hours = m_last_time / 1000 / 3600;
@@ -881,7 +875,6 @@ class auto_logger_file__
881875
ofstream_ptr m_ofstream;
882876
int64_t m_last_time{ -1 };
883877
int64_t m_log_size{ 0 };
884-
bool m_disable_write{ false };
885878
};
886879

887880
#ifndef DISABLE_LOGGER_THREAD_SAFE
@@ -927,8 +920,7 @@ const inline std::string _LOGGER_WARN_STR__ = " WARN ";
927920
const inline std::string _LOGGER_ERR_STR__ = " ERROR ";
928921
const inline std::string _LOGGER_FILE_STR__ = " FILE ";
929922

930-
inline void logger_output_console__([[maybe_unused]] bool disable_cout,
931-
[[maybe_unused]] const logger_level__& level,
923+
inline void logger_output_console__([[maybe_unused]] const logger_level__& level,
932924
[[maybe_unused]] const std::string& prefix,
933925
[[maybe_unused]] const std::string& message) noexcept
934926
{
@@ -940,79 +932,73 @@ inline void logger_output_console__([[maybe_unused]] bool disable_cout,
940932
#endif
941933

942934
#if !defined(DISABLE_LOGGER_TO_CONSOLE)
943-
if (!disable_cout)
944-
{
945-
HANDLE handle_stdout = GetStdHandle(STD_OUTPUT_HANDLE);
946-
CONSOLE_SCREEN_BUFFER_INFO csbi;
947-
GetConsoleScreenBufferInfo(handle_stdout, &csbi);
948-
949-
switch (level)
950-
{
951-
case _logger_info_id__:
952-
SetConsoleTextAttribute(handle_stdout,
953-
FOREGROUND_GREEN);
954-
break;
955-
case _logger_debug_id__:
956-
SetConsoleTextAttribute(handle_stdout,
957-
FOREGROUND_GREEN | FOREGROUND_INTENSITY);
958-
break;
959-
case _logger_warn_id__:
960-
SetConsoleTextAttribute(handle_stdout,
961-
FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
962-
break;
963-
case _logger_error_id__:
964-
SetConsoleTextAttribute(handle_stdout,
965-
FOREGROUND_RED | FOREGROUND_INTENSITY);
966-
break;
967-
}
935+
HANDLE handle_stdout = GetStdHandle(STD_OUTPUT_HANDLE);
936+
CONSOLE_SCREEN_BUFFER_INFO csbi;
937+
GetConsoleScreenBufferInfo(handle_stdout, &csbi);
968938

969-
WriteConsoleW(handle_stdout,
970-
title.data(), (DWORD)title.size(), nullptr, nullptr);
939+
switch (level)
940+
{
941+
case _logger_info_id__:
971942
SetConsoleTextAttribute(handle_stdout,
972-
FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
973-
974-
WriteConsoleW(handle_stdout,
975-
msg.data(), (DWORD)msg.size(), nullptr, nullptr);
976-
SetConsoleTextAttribute(handle_stdout, csbi.wAttributes);
943+
FOREGROUND_GREEN);
944+
break;
945+
case _logger_debug_id__:
946+
SetConsoleTextAttribute(handle_stdout,
947+
FOREGROUND_GREEN | FOREGROUND_INTENSITY);
948+
break;
949+
case _logger_warn_id__:
950+
SetConsoleTextAttribute(handle_stdout,
951+
FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
952+
break;
953+
case _logger_error_id__:
954+
SetConsoleTextAttribute(handle_stdout,
955+
FOREGROUND_RED | FOREGROUND_INTENSITY);
956+
break;
977957
}
958+
959+
WriteConsoleW(handle_stdout,
960+
title.data(), (DWORD)title.size(), nullptr, nullptr);
961+
SetConsoleTextAttribute(handle_stdout,
962+
FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
963+
964+
WriteConsoleW(handle_stdout,
965+
msg.data(), (DWORD)msg.size(), nullptr, nullptr);
966+
SetConsoleTextAttribute(handle_stdout, csbi.wAttributes);
978967
#endif
979968

980969
#if !defined(DISABLE_LOGGER_TO_DBGVIEW)
981970
LOGGER_DBG_VIEW_(title + msg);
982971
#endif
983972

984973
#elif !defined(DISABLE_LOGGER_TO_CONSOLE)
985-
if (!disable_cout)
986-
{
987-
std::string out;
988-
989-
switch (level)
990-
{
991-
case _logger_info_id__:
992-
std::format_to(std::back_inserter(out),
993-
"\033[32m{}\033[0m{}", prefix, message);
994-
break;
995-
case _logger_debug_id__:
996-
std::format_to(std::back_inserter(out),
997-
"\033[1;32m{}\033[0m{}", prefix, message);
998-
break;
999-
case _logger_warn_id__:
1000-
std::format_to(std::back_inserter(out),
1001-
"\033[1;33m{}\033[0m{}", prefix, message);
1002-
break;
1003-
case _logger_error_id__:
1004-
std::format_to(std::back_inserter(out),
1005-
"\033[1;31m{}\033[0m{}", prefix, message);
1006-
break;
1007-
case _logger_file_id__:
1008-
// std::format_to(std::back_inserter(out),
1009-
// "\033[1;34m{}\033[0m{}", prefix, message);
1010-
break;
1011-
}
1012-
1013-
std::cout << out;
1014-
std::cout.flush();
1015-
}
974+
std::string out;
975+
976+
switch (level)
977+
{
978+
case _logger_info_id__:
979+
std::format_to(std::back_inserter(out),
980+
"\033[32m{}\033[0m{}", prefix, message);
981+
break;
982+
case _logger_debug_id__:
983+
std::format_to(std::back_inserter(out),
984+
"\033[1;32m{}\033[0m{}", prefix, message);
985+
break;
986+
case _logger_warn_id__:
987+
std::format_to(std::back_inserter(out),
988+
"\033[1;33m{}\033[0m{}", prefix, message);
989+
break;
990+
case _logger_error_id__:
991+
std::format_to(std::back_inserter(out),
992+
"\033[1;31m{}\033[0m{}", prefix, message);
993+
break;
994+
case _logger_file_id__:
995+
// std::format_to(std::back_inserter(out),
996+
// "\033[1;34m{}\033[0m{}", prefix, message);
997+
break;
998+
}
999+
1000+
std::cout << out;
1001+
std::cout.flush();
10161002
#endif
10171003
}
10181004

@@ -1114,7 +1100,8 @@ inline void logger_writer__(int64_t time, const logger_level__& level,
11141100
return;
11151101

11161102
#ifndef DISABLE_WRITE_LOGGING
1117-
logger.write(time, whole.c_str(), whole.size());
1103+
if (global_write_logging___)
1104+
logger.write(time, whole.c_str(), whole.size());
11181105
#endif // !DISABLE_WRITE_LOGGING
11191106

11201107
// Output to systemd.
@@ -1129,7 +1116,8 @@ inline void logger_writer__(int64_t time, const logger_level__& level,
11291116

11301117
// Output to console.
11311118
#if !defined(USE_SYSTEMD_LOGGING) && !defined(__ANDROID__)
1132-
logger_output_console__(disable_cout, level, prefix, tmp);
1119+
if (global_console_logging___ && !disable_cout)
1120+
logger_output_console__(level, prefix, tmp);
11331121
#endif
11341122
}
11351123

@@ -1305,11 +1293,14 @@ inline void turnon_logging() noexcept
13051293
global_logging___ = true;
13061294
}
13071295

1308-
inline void toggle_write_logging(bool disable)
1296+
inline void toggle_write_logging(bool enable)
13091297
{
1310-
auto_logger_file__& file =
1311-
logger_aux__::writer_single<xlogger::auto_logger_file__>();
1312-
file.logging(disable);
1298+
global_write_logging___ = enable;
1299+
}
1300+
1301+
inline void toggle_console_logging(bool enable)
1302+
{
1303+
global_console_logging___ = enable;
13131304
}
13141305

13151306
inline void set_logfile_maxsize(int64_t size) noexcept
@@ -1826,7 +1817,8 @@ namespace xlogger {
18261817
inline void shutdown_logging();
18271818
inline void turnoff_logging() noexcept;
18281819
inline void turnon_logging() noexcept;
1829-
inline void toggle_write_logging(bool disable);
1820+
inline void toggle_write_logging(bool enable);
1821+
inline void toggle_console_logging(bool enable);
18301822
inline void set_logfile_maxsize(int64_t size) noexcept;
18311823
}
18321824

server/proxy_server/main.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -404,12 +404,10 @@ and/or open issues at https://github.com/Jackarain/proxy)"
404404
po::notify(vm);
405405
}
406406

407-
if (disable_logs)
408-
xlogger::toggle_write_logging(true);
409-
407+
if (disable_logs || log_dir.empty())
408+
xlogger::toggle_write_logging(false);
409+
else
410410
xlogger::init_logging(log_dir);
411-
if (log_dir.empty())
412-
xlogger::toggle_write_logging(true);
413411

414412
print_args(argc, argv, vm);
415413

0 commit comments

Comments
 (0)