mirror of
https://git.suyu.dev/suyu/suyu
synced 2025-09-01 00:46:32 -05:00
Merge branch 'dev' into dev
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include <atomic>
|
||||
#include <chrono>
|
||||
#include <climits>
|
||||
#include <mutex>
|
||||
#include <thread>
|
||||
|
||||
#include <fmt/format.h>
|
||||
@@ -231,8 +232,15 @@ public:
|
||||
if (!filter.CheckMessage(log_class, log_level)) {
|
||||
return;
|
||||
}
|
||||
message_queue.EmplaceWait(
|
||||
CreateEntry(log_class, log_level, filename, line_num, function, std::move(message)));
|
||||
|
||||
auto entry =
|
||||
CreateEntry(log_class, log_level, filename, line_num, function, std::move(message));
|
||||
if (Settings::values.log_async) {
|
||||
message_queue.EmplaceWait(entry);
|
||||
} else {
|
||||
std::scoped_lock l{sync_mutex};
|
||||
ForEachBackend([&entry](Backend& backend) { backend.Write(entry); });
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -313,6 +321,7 @@ private:
|
||||
#endif
|
||||
|
||||
MPSCQueue<Entry> message_queue{};
|
||||
std::mutex sync_mutex;
|
||||
std::chrono::steady_clock::time_point time_origin{std::chrono::steady_clock::now()};
|
||||
std::jthread backend_thread;
|
||||
};
|
||||
@@ -345,9 +354,11 @@ void SetColorConsoleBackendEnabled(bool enabled) {
|
||||
void FmtLogMessageImpl(Class log_class, Level log_level, const char* filename,
|
||||
unsigned int line_num, const char* function, fmt::string_view format,
|
||||
const fmt::format_args& args) {
|
||||
if (!initialization_in_progress_suppress_logging) {
|
||||
Impl::Instance().PushEntry(log_class, log_level, filename, line_num, function,
|
||||
fmt::vformat(format, args));
|
||||
if (initialization_in_progress_suppress_logging) {
|
||||
return;
|
||||
}
|
||||
|
||||
Impl::Instance().PushEntry(log_class, log_level, filename, line_num, function,
|
||||
fmt::vformat(format, args));
|
||||
}
|
||||
} // namespace Common::Log
|
||||
|
@@ -171,6 +171,7 @@ const char* GetLogClassName(Class log_class) {
|
||||
#define SUB(x, y) \
|
||||
case Class::x##_##y: \
|
||||
return #x "." #y;
|
||||
// return #x "_" #y;
|
||||
ALL_LOG_CLASSES()
|
||||
#undef CLS
|
||||
#undef SUB
|
||||
|
@@ -605,6 +605,7 @@ struct Values {
|
||||
|
||||
// Miscellaneous
|
||||
Setting<std::string> log_filter{linkage, "*:Info", "log_filter", Category::Miscellaneous};
|
||||
Setting<bool> log_async{linkage, true, "log_async", Category::Miscellaneous};
|
||||
Setting<bool> use_dev_keys{linkage, false, "use_dev_keys", Category::Miscellaneous};
|
||||
|
||||
// Network
|
||||
|
Reference in New Issue
Block a user