5#include "Containers/Array.h"
6#include "Containers/ContainerAllocationPolicies.h"
8#include "Logging/LogVerbosity.h"
9#include "Misc/EnumClassFlags.h"
10#include "Misc/OutputDevice.h"
11#include "Templates/PimplPtr.h"
12#include "UObject/NameTypes.h"
15
16
18namespace UE::
Private {
struct FOutputDeviceRedirectorState; }
43 InBufferedLine
.Data =
nullptr;
58
59
60
61
62
69
70
74 UE_DEPRECATED(5.1,
"TLocalOutputDevicesArray is being removed. Use TArray<FOutputDevice*, TInlineAllocator<16>>.")
81 static FOutputDeviceRedirector*
Get();
84
85
86
87
91
92
93
94
98
99
100
101
102
109 UE_DEPRECATED(5.1,
"Use Panic() when the caller is handling a crash, otherwise use FlushThreadedLogs().")
110 void PanicFlushThreadedLogs() {
Panic(); }
113
114
115
119
120
121
122
126
127
128
129
130
131
138
139
140
141
142
143
147
148
149
150
154
155
156
157
158
162
163
164
165
166
177
178
179
180
181
182
183
184
188
189
190
191
195
196
#define UE_DEPRECATED(Version, Message)
#define ENUM_CLASS_FLAGS(Enum)
EOutputDeviceRedirectorFlushOptions
bool TryStartDedicatedPrimaryThread()
void EnableBacklog(bool bEnable)
void SerializeRecord(const UE::FLogRecord &Record) final
void RedirectLog(const FName &Category, ELogVerbosity::Type Verbosity, const TCHAR *Data)
void AddOutputDevice(FOutputDevice *OutputDevice)
void SetCurrentThreadAsPrimaryThread()
void RemoveOutputDevice(FOutputDevice *OutputDevice)
void SetCurrentThreadAsMasterThread()
static FOutputDeviceRedirector * Get()
void RedirectLog(const FLazyName &Category, ELogVerbosity::Type Verbosity, const TCHAR *Data)
void Serialize(const TCHAR *Data, ELogVerbosity::Type Verbosity, const FName &Category) final
TArray< FOutputDevice *, TInlineAllocator< 16 > > TLocalOutputDevicesArray
bool IsRedirectingTo(FOutputDevice *OutputDevice)
TPimplPtr< UE::Private::FOutputDeviceRedirectorState > State
void SerializeBacklog(FOutputDevice *OutputDevice)
void Serialize(const TCHAR *Data, ELogVerbosity::Type Verbosity, const FName &Category, const double Time) final
void FlushThreadedLogs(EOutputDeviceRedirectorFlushOptions Options=EOutputDeviceRedirectorFlushOptions::None)
FOutputDeviceRedirector()
bool IsBacklogEnabled() const
FBufferedLine(const FBufferedLine &)=delete
FBufferedLine(FBufferedLine &InBufferedLine, EBufferedLineInit Unused)
FBufferedLine(const TCHAR *InData, const FName &InCategory, ELogVerbosity::Type InVerbosity, const double InTime=-1)
const ELogVerbosity::Type Verbosity
FBufferedLine & operator=(const FBufferedLine &)=delete