// Copyright 2025 https://yuewu.dev/en All Rights Reserved. #pragma once #include "Logging/LogMacros.h" namespace GMSLog { GENERICMOVEMENTSYSTEM_API extern const FName MessageLogName; } DECLARE_STATS_GROUP(TEXT("GMS"), STATGROUP_GMS, STATCAT_Advanced) FString GetGMSLogContextString(const UObject* ContextObject = nullptr); GENERICMOVEMENTSYSTEM_API DECLARE_LOG_CATEGORY_EXTERN(LogGMS, Log, All) GENERICMOVEMENTSYSTEM_API DECLARE_LOG_CATEGORY_EXTERN(LogGMS_Animation, Log, All) #define GMS_LOG(Verbosity, Format, ...) \ { \ UE_LOG(LogGMS, Verbosity, TEXT("%S: %s"),__FUNCTION__, *FString::Printf(TEXT(Format), ##__VA_ARGS__)) \ } #define GMS_ANIMATION_LOG(Verbosity, Format, ...) \ { \ UE_LOG(LogGMS_Animation, Verbosity, TEXT("%S: %s"),__FUNCTION__, *FString::Printf(TEXT(Format), ##__VA_ARGS__)) \ } #define GMS_CLOG(Verbosity, Format, ...) \ { \ UE_LOG(LogGMS, Verbosity, TEXT("%S: ctx(%s) %s"),__FUNCTION__, *GetGMSLogContextString(this), *FString::Printf(TEXT(Format), ##__VA_ARGS__)) \ } #define GMS_ANIMATION_CLOG(Verbosity, Format, ...) \ { \ UE_LOG(LogGMS_Animation, Verbosity, TEXT("%S: ctx(%s) %s"),__FUNCTION__, *GetGMSLogContextString(this), *FString::Printf(TEXT(Format), ##__VA_ARGS__)) \ }