@@ -214,6 +214,8 @@ namespace xlogger {
214
214
215
215
216
216
inline bool global_logging___ = true ;
217
+ inline bool global_console_logging___ = true ;
218
+ inline bool global_write_logging___ = true ;
217
219
inline int64_t global_logfile_size___ = DEFAULT_LOG_MAXFILE_SIZE;
218
220
219
221
@@ -773,17 +775,9 @@ class auto_logger_file__
773
775
return m_log_path.string ();
774
776
}
775
777
776
- inline void logging (bool disable) noexcept
777
- {
778
- m_disable_write = disable;
779
- }
780
-
781
778
inline void write ([[maybe_unused]] int64_t time,
782
779
const char * str, std::streamsize size)
783
780
{
784
- if (m_disable_write)
785
- return ;
786
-
787
781
bool condition = false ;
788
782
auto hours = time / 1000 / 3600 ;
789
783
auto last_hours = m_last_time / 1000 / 3600 ;
@@ -881,7 +875,6 @@ class auto_logger_file__
881
875
ofstream_ptr m_ofstream;
882
876
int64_t m_last_time{ -1 };
883
877
int64_t m_log_size{ 0 };
884
- bool m_disable_write{ false };
885
878
};
886
879
887
880
#ifndef DISABLE_LOGGER_THREAD_SAFE
@@ -927,8 +920,7 @@ const inline std::string _LOGGER_WARN_STR__ = " WARN ";
927
920
const inline std::string _LOGGER_ERR_STR__ = " ERROR " ;
928
921
const inline std::string _LOGGER_FILE_STR__ = " FILE " ;
929
922
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,
932
924
[[maybe_unused]] const std::string& prefix,
933
925
[[maybe_unused]] const std::string& message) noexcept
934
926
{
@@ -940,79 +932,73 @@ inline void logger_output_console__([[maybe_unused]] bool disable_cout,
940
932
#endif
941
933
942
934
#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);
968
938
969
- WriteConsoleW (handle_stdout,
970
- title.data (), (DWORD)title.size (), nullptr , nullptr );
939
+ switch (level)
940
+ {
941
+ case _logger_info_id__:
971
942
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 ;
977
957
}
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 );
978
967
#endif
979
968
980
969
#if !defined(DISABLE_LOGGER_TO_DBGVIEW)
981
970
LOGGER_DBG_VIEW_ (title + msg);
982
971
#endif
983
972
984
973
#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 ();
1016
1002
#endif
1017
1003
}
1018
1004
@@ -1114,7 +1100,8 @@ inline void logger_writer__(int64_t time, const logger_level__& level,
1114
1100
return ;
1115
1101
1116
1102
#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 ());
1118
1105
#endif // !DISABLE_WRITE_LOGGING
1119
1106
1120
1107
// Output to systemd.
@@ -1129,7 +1116,8 @@ inline void logger_writer__(int64_t time, const logger_level__& level,
1129
1116
1130
1117
// Output to console.
1131
1118
#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);
1133
1121
#endif
1134
1122
}
1135
1123
@@ -1305,11 +1293,14 @@ inline void turnon_logging() noexcept
1305
1293
global_logging___ = true ;
1306
1294
}
1307
1295
1308
- inline void toggle_write_logging (bool disable )
1296
+ inline void toggle_write_logging (bool enable )
1309
1297
{
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;
1313
1304
}
1314
1305
1315
1306
inline void set_logfile_maxsize (int64_t size) noexcept
@@ -1826,7 +1817,8 @@ namespace xlogger {
1826
1817
inline void shutdown_logging ();
1827
1818
inline void turnoff_logging () noexcept ;
1828
1819
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);
1830
1822
inline void set_logfile_maxsize (int64_t size) noexcept ;
1831
1823
}
1832
1824
0 commit comments