UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LiveLinkLog.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Map.h"
7#include "CoreMinimal.h"
8#include "HAL/Platform.h"
9#include "LiveLinkTypes.h"
13#include "Templates/UniquePtr.h"
15#include "UObject/NameTypes.h"
16#include "UObject/UnrealNames.h"
17
18struct FTimespan;
19
20#define ENABLE_LIVELINK_LOGGING (!NO_LOGGING && !UE_BUILD_TEST)
21
24{
25public:
27 template<typename... ArgsType>
32
37 template<typename... ArgsType>
38 static void ErrorOnce(FName MessageID,
39 const FLiveLinkSubjectKey& SubjectKey,
41 ArgsType... Args)
42 {
43 Log_Internal(EMessageSeverity::Error, MessageID, SubjectKey, Format, Args...);
44 }
45
47 template<typename... ArgsType>
52
57 template<typename... ArgsType>
58 static void WarningOnce(FName MessageID,
59 const FLiveLinkSubjectKey& SubjectKey,
61 ArgsType... Args)
62 {
63 Log_Internal(EMessageSeverity::Warning, MessageID, SubjectKey, Format, Args...);
64 }
65
67 template<typename... ArgsType>
72
77 template<typename... ArgsType>
78 static void InfoOnce(FName MessageID,
79 const FLiveLinkSubjectKey& SubjectKey,
81 ArgsType... Args)
82 {
83 Log_Internal(EMessageSeverity::Info, MessageID, SubjectKey, Format, Args...);
84 }
85
90 template<typename... ArgsType>
97
103 template<typename... ArgsType>
105 FName MessageID,
106 const FLiveLinkSubjectKey& SubjectKey,
108 ArgsType... Args)
109 {
110 return CreateTokenizedMessage_Internal(Severity, MessageID, SubjectKey, Format, Args...);
111 }
112
113 static FLiveLinkLog* GetInstance() { return Instance.Get(); }
114
115public:
117 virtual ~FLiveLinkLog() = default;
118
120 virtual TPair<int32, FTimespan> GetOccurrence(FName MessageID, FLiveLinkSubjectKey SubjectKey) const = 0;
121
124
127
128private:
129 template<typename... ArgsType>
130 static void Log_Internal(EMessageSeverity::Type Severity,
131 FName MessageID,
132 const FLiveLinkSubjectKey& SubjectKey,
134 ArgsType... Args)
135 {
136#if ENABLE_LIVELINK_LOGGING
137 if (Instance)
138 {
139 Instance->LogMessage(Severity, MessageID, SubjectKey, FString::Printf(Format, Args...));
140 }
141#endif
142 }
143
144 template<typename... ArgsType>
145 static TSharedPtr<FTokenizedMessage> CreateTokenizedMessage_Internal(EMessageSeverity::Type Severity,
146 FName MessageID,
147 const FLiveLinkSubjectKey& SubjectKey,
149 ArgsType... Args)
150 {
151#if ENABLE_LIVELINK_LOGGING
152 if (Instance)
153 {
154 return Instance->CreateTokenizedMessage(Severity, MessageID, SubjectKey, FString::Printf(Format, Args...));
155 }
156#endif
158 }
159
160protected:
161 virtual void LogMessage(EMessageSeverity::Type Severity, FName MessageID, const FLiveLinkSubjectKey& SubjectKey, FString&& Message) = 0;
162 virtual TSharedPtr<FTokenizedMessage> CreateTokenizedMessage(EMessageSeverity::Type Severity, FName MessageID, const FLiveLinkSubjectKey& SubjectKey, FString&& Message) = 0;
163
164protected:
167};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition LiveLinkLog.h:24
static FLiveLinkLog * GetInstance()
Definition LiveLinkLog.h:113
static LIVELINKINTERFACE_API TUniquePtr< FLiveLinkLog > Instance
Definition LiveLinkLog.h:166
virtual void GetLogCount(int32 &OutErrorCount, int32 &OutWarningCount, int32 &OutInfoCount) const =0
static TSharedPtr< FTokenizedMessage > TokenizedMessage(EMessageSeverity::Type Severity, UE::Core::TCheckedFormatString< FString::FmtCharType, ArgsType... > Format, ArgsType... Args)
Definition LiveLinkLog.h:91
virtual TPair< int32, FTimespan > GetOccurrence(FName MessageID, FLiveLinkSubjectKey SubjectKey) const =0
static void Warning(UE::Core::TCheckedFormatString< FString::FmtCharType, ArgsType... > Format, ArgsType... Args)
Definition LiveLinkLog.h:48
static void Error(UE::Core::TCheckedFormatString< FString::FmtCharType, ArgsType... > Format, ArgsType... Args)
Definition LiveLinkLog.h:28
static TSharedPtr< FTokenizedMessage > TokenizedMessageOnce(EMessageSeverity::Type Severity, FName MessageID, const FLiveLinkSubjectKey &SubjectKey, UE::Core::TCheckedFormatString< FString::FmtCharType, ArgsType... > Format, ArgsType... Args)
Definition LiveLinkLog.h:104
static void Info(UE::Core::TCheckedFormatString< FString::FmtCharType, ArgsType... > Format, ArgsType... Args)
Definition LiveLinkLog.h:68
static void ErrorOnce(FName MessageID, const FLiveLinkSubjectKey &SubjectKey, UE::Core::TCheckedFormatString< FString::FmtCharType, ArgsType... > Format, ArgsType... Args)
Definition LiveLinkLog.h:38
virtual ~FLiveLinkLog()=default
virtual void LogMessage(EMessageSeverity::Type Severity, FName MessageID, const FLiveLinkSubjectKey &SubjectKey, FString &&Message)=0
virtual TSharedPtr< FTokenizedMessage > CreateTokenizedMessage(EMessageSeverity::Type Severity, FName MessageID, const FLiveLinkSubjectKey &SubjectKey, FString &&Message)=0
virtual TPair< int32, FTimespan > GetSelectedOccurrence() const =0
static void WarningOnce(FName MessageID, const FLiveLinkSubjectKey &SubjectKey, UE::Core::TCheckedFormatString< FString::FmtCharType, ArgsType... > Format, ArgsType... Args)
Definition LiveLinkLog.h:58
static void InfoOnce(FName MessageID, const FLiveLinkSubjectKey &SubjectKey, UE::Core::TCheckedFormatString< FString::FmtCharType, ArgsType... > Format, ArgsType... Args)
Definition LiveLinkLog.h:78
Definition NameTypes.h:617
Definition SharedPointer.h:692
Definition UniquePtr.h:107
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
Type
Definition TokenizedMessage.h:21
@ Error
Definition TokenizedMessage.h:23
@ Warning
Definition TokenizedMessage.h:25
@ Info
Definition TokenizedMessage.h:26
Definition LiveLinkTypes.h:78
Definition Timespan.h:76
Definition Tuple.h:652