UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
OutputDeviceRedirector.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "CoreTypes.h"
10#include "Misc/NotNull.h"
11#include "Misc/OutputDevice.h"
12#include "Templates/PimplPtr.h"
13#include "Templates/UniquePtr.h"
14#include "UObject/NameTypes.h"
15
16/*-----------------------------------------------------------------------------
17FOutputDeviceRedirector.
18-----------------------------------------------------------------------------*/
19
21namespace UE::Private { struct FOutputDeviceRedirectorState; }
22
34
36{
37 None = 0,
38
45 Async = 1 << 0,
46};
47
49
54{
55public:
58
61
64
70 CORE_API void AddOutputDevice(FOutputDevice* OutputDevice);
71
77 CORE_API void RemoveOutputDevice(FOutputDevice* OutputDevice);
78
85 CORE_API bool IsRedirectingTo(FOutputDevice* OutputDevice);
86
89
94 UE_DEPRECATED(5.7, "The backlog is now automatically serialized within AddOutputDevice.")
95 CORE_API void SerializeBacklog(FOutputDevice* OutputDevice);
96
102 CORE_API void EnableBacklog(bool bEnable);
103
112
121
128
135 CORE_API void Serialize(const TCHAR* Data, ELogVerbosity::Type Verbosity, const FName& Category, const double Time) final;
136
143 CORE_API void Serialize(const TCHAR* Data, ELogVerbosity::Type Verbosity, const FName& Category) final;
144
146 CORE_API void RedirectLog(const FName& Category, ELogVerbosity::Type Verbosity, const TCHAR* Data);
147 CORE_API void RedirectLog(const FLazyName& Category, ELogVerbosity::Type Verbosity, const TCHAR* Data);
148
155
157 CORE_API void Flush() final;
158
168 CORE_API void Panic();
169
175 CORE_API void TearDown() final;
176
178 UE_DEPRECATED(5.7, "The backlog is now automatically serialized within AddOutputDevice.")
179 CORE_API bool IsBacklogEnabled() const;
180
182 UE_INTERNAL bool HasBacklogForCrash() const;
185
186private:
188};
189
192{
193public:
194 CORE_API void Wait() const;
195 CORE_API bool Poll() const;
196
197private:
198 FOutputDeviceFence() = default;
199
201 uint64 Index = 0;
202
204};
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
T TNotNull
Definition NotNull.h:307
EOutputDeviceRedirectorFlushOptions
Definition OutputDeviceRedirector.h:36
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:1680
Definition NameTypes.h:617
Definition OutputDeviceRedirector.h:192
CORE_API void Wait() const
Definition OutputDeviceRedirector.cpp:1068
CORE_API bool Poll() const
Definition OutputDeviceRedirector.cpp:1073
Definition OutputDeviceRedirector.h:54
CORE_API void FlushThreadedLogs(EOutputDeviceRedirectorFlushOptions Options=EOutputDeviceRedirectorFlushOptions::None)
Definition OutputDeviceRedirector.cpp:792
CORE_API void RemoveOutputDevice(FOutputDevice *OutputDevice)
Definition OutputDeviceRedirector.cpp:776
CORE_API FOutputDeviceFence CreateFence()
Definition OutputDeviceRedirector.cpp:957
CORE_API void SetCurrentThreadAsPrimaryThread()
Definition OutputDeviceRedirector.cpp:810
CORE_API ~FOutputDeviceRedirector()
Definition OutputDeviceRedirector.cpp:740
CORE_API void TearDown() final
Definition OutputDeviceRedirector.cpp:1016
CORE_API void RedirectLog(const FName &Category, ELogVerbosity::Type Verbosity, const TCHAR *Data)
Definition OutputDeviceRedirector.cpp:946
CORE_API void Flush() final
Definition OutputDeviceRedirector.cpp:966
CORE_API void Panic()
Definition OutputDeviceRedirector.cpp:978
UE_INTERNAL void SerializeBacklogForCrash(TNotNull< FOutputDevice * > OutputDevice) const
Definition OutputDeviceRedirector.cpp:1058
CORE_API bool IsRedirectingTo(FOutputDevice *OutputDevice)
Definition OutputDeviceRedirector.cpp:785
CORE_API FOutputDeviceRedirector()
Definition OutputDeviceRedirector.cpp:732
CORE_API bool TryStartDedicatedPrimaryThread()
Definition OutputDeviceRedirector.cpp:828
CORE_API void EnableBacklog(bool bEnable)
Definition OutputDeviceRedirector.cpp:804
static CORE_API FOutputDeviceRedirector * Get()
Definition OutputDeviceRedirector.cpp:748
CORE_API void SerializeRecord(const UE::FLogRecord &Record) final
Definition OutputDeviceRedirector.cpp:834
CORE_API bool IsBacklogEnabled() const
Definition OutputDeviceRedirector.cpp:1047
CORE_API void AddOutputDevice(FOutputDevice *OutputDevice)
Definition OutputDeviceRedirector.cpp:755
CORE_API void SerializeBacklog(FOutputDevice *OutputDevice)
Definition OutputDeviceRedirector.cpp:798
UE_INTERNAL bool HasBacklogForCrash() const
Definition OutputDeviceRedirector.cpp:1052
Definition OutputDevice.h:133
Definition UniquePtr.h:107
Definition StructuredLog.h:182
Type
Definition LogVerbosity.h:17
Definition PackageReader.cpp:44
U16 Index
Definition radfft.cpp:71
Definition OutputDeviceRedirector.h:25
const FLazyName Category
Definition OutputDeviceRedirector.h:27
const double Time
Definition OutputDeviceRedirector.h:28
TUniquePtr< TCHAR[]> Data
Definition OutputDeviceRedirector.h:26
bool bExternalAllocation
Definition OutputDeviceRedirector.h:30
const ELogVerbosity::Type Verbosity
Definition OutputDeviceRedirector.h:29
Definition PimplPtr.h:50
Definition OutputDeviceRedirector.cpp:136