18 : MessageBufferCapacity(InBufferCapacity)
19 , MessageBuffer(InBufferCapacity)
29 virtual void sink_it_(
const spdlog::details::log_msg& InLogMessage)
override
31 spdlog::memory_buf_t Formatted;
32 spdlog::sinks::base_sink<std::mutex>::formatter_->format(InLogMessage, Formatted);
34 #if defined(LK_ENGINE_MSVC)
35 const std::string LongMessage = LK_FMT_LIB::format(
"{}", Formatted);
36 #elif defined(LK_ENGINE_GCC) || defined(LK_ENGINE_CLANG)
37 const std::string LongMessage = LK_FMT_LIB::to_string(Formatted);
39 std::string ShortMessage = LongMessage;
41 static constexpr int MAX_LENGTH_MESSAGE = 100;
42 if (ShortMessage.length() > MAX_LENGTH_MESSAGE)
44 const std::size_t SpacePos = ShortMessage.find_first_of(
' ', MAX_LENGTH_MESSAGE);
45 if (SpacePos != std::string::npos)
47 ShortMessage.replace(SpacePos, ShortMessage.length() - 1,
"...");
54 GetMessageFlags(InLogMessage.level),
55 std::chrono::system_clock::to_time_t(InLogMessage.time)
58 if (MessageCount == MessageBufferCapacity)
64 virtual void flush_()
override
68 LEditorConsolePanel::PushMessage(Message);
75 static int16_t GetMessageFlags(spdlog::level::level_enum level)
81 case spdlog::level::trace:
82 case spdlog::level::debug:
84 Flags |= EConsoleVerbosity::Debug;
87 case spdlog::level::info:
89 Flags |= EConsoleVerbosity::Info;
92 case spdlog::level::warn:
94 Flags |= EConsoleVerbosity::Warning;
97 case spdlog::level::err:
98 case spdlog::level::critical:
100 Flags |= EConsoleVerbosity::Error;
109 uint32_t MessageCount = 0;
110 std::vector<FConsoleMessage> MessageBuffer;
111 uint32_t MessageBufferCapacity;