bmh/FlightSimulation/Plugins/CesiumForUnreal_5.4/Source/CesiumRuntime/Private/SpdlogUnrealLoggerSink.h
2025-02-07 22:52:32 +08:00

26 lines
648 B
C++

// Copyright 2020-2024 CesiumGS, Inc. and Contributors
#pragma once
#include "CoreMinimal.h"
#include <memory>
#include <mutex>
#include <spdlog/details/null_mutex.h>
#include <spdlog/sinks/base_sink.h>
/**
* @brief Internal implementation of a spdlog sink that forwards the messages
* to Unreal log macros.
*/
class SpdlogUnrealLoggerSink
: public spdlog::sinks::base_sink<spdlog::details::null_mutex> {
protected:
virtual void sink_it_(const spdlog::details::log_msg& msg) override;
virtual void flush_() override;
private:
FString formatMessage(const spdlog::details::log_msg& msg) const;
mutable std::mutex _formatMutex;
};