Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/VisualLogger
Inheritance Hierarchy
- FOutputDevice
- FVisualLogger
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Public/VisualLogger/VisualLogger.h |
| Include | #include "VisualLogger/VisualLogger.h" |
Syntax
class FVisualLogger : public FOutputDevice
Variables
| Type | Name | Description | |
|---|---|---|---|
| TMap< FName, FVisualLogExtensionInterface * > | AllExtensions | Visual Logger extensions map. | |
| bool: 1 | bBlockedAllCategories | If set all categories are blocked from logging | |
| bool: 1 | bContainsInvalidRedirects | Indicates there are entries in the redirection map that are invalid | |
| bool: 1 | bForceUniqueLogNames | Controls how we generate log names. | |
| bool: 1 | bIsFlushRequired | Indicates that entries were added/updated and that a flush is required | |
| bool: 1 | bIsRecordingOnServer | Variable set (from cheat manager) when logging is active on server | |
| bool: 1 | bIsRecordingToFile | If set we are recording to file | |
| bool: 1 | bIsRecordingToTrace | If set we are recording to insights trace | |
| TArray< FName > | CategoryAllowList | List of categories that are still allowed to be logged when logging is blocking | |
| FChildToOwnerRedirectionMap | ChildToOwnerMap | For any object that has requested redirection this map holds where we should redirect the traffic to | |
| TArray< UClass * > | ClassAllowList | Allowed classes - only instances of these classes will be logged. | |
| FVisualLoggerObjectEntryMap | CurrentEntryPerObject | Current entry with all data. | |
| FRWLock | EntryRWLock | Read Write lock protecting object entries. | |
| TFunction< double(const UObject *)> | GetTimeStampFunc | Function to call when getting the time stamp | |
| TMap< double, int32 > | LastUniqueIds | Last generated unique id for given times tamp | |
| FVisualLogFilenameGetterDelegate | LogFileNameGetter | Delegate to set project specific file name for vlogs | |
| TSet< FObjectKey > | ObjectAllowList | Allowed objects - takes priority over class allow list and should be used to create exceptions in it if ObjectAllowList is empty (default) everything will log do NOT read from those pointers, they can be invalid! | |
| TMap< FObjectKey, FName > | ObjectToClassNameMap | Map to contain class names for Objects (they can be destroyed after while) | |
| TMap< FObjectKey, FName > | ObjectToNameMap | Map to contain names for Objects (they can be destroyed after while) | |
| FObjectToWorldMapType | ObjectToWorldMap | Cached map to world information because it's just raw pointer and not real object. | |
| TArray< FVisualLogDevice * > | OutputDevices | Array of output devices to redirect to | |
| FRWLock | RedirectRWLock | Read Write lock protecting redirection maps (ChildToOwnerMap and ObjectToWorldMap) | |
| double | StartRecordingToFileTime | Start recording time | |
| TArray< FVisualLoggerObjectEntryMap * > | ThreadCurrentEntryMaps | Threads current entry maps. | |
| FTSTicker::FDelegateHandle | TickerHandle | Handle to the registered ticker to flush entries |
Constructors
No constructors are accessible with public or protected access.
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddCategoryToAllowList
(
FName Category |
||
| void | AddClassToAllowList
(
UClass& InClass |
||
| void | AddDevice
(
FVisualLogDevice* InDevice |
Add visual logger output device | |
| void | AddObjectToAllowList
(
const UObject& InObject |
||
| void | ArrowLogf
(
const UObject* LogOwner, |
||
| void | ArrowLogf
(
const UObject* LogOwner, |
Arrow. | |
| void | BlockAllCategories
(
const bool bInBlock |
Blocks all categories from logging. It can be bypassed with the category allow list | |
| void | CategorizedLogf
(
const UObject* LogOwner, |
Regular text log. | |
| void | CategorizedLogf
(
const UObject* LogOwner, |
||
| bool | CheckVisualLogInputInternal
(
const UObject* Object, |
Internal check for each usage of visual logger | |
| void | CircleLogf
(
const UObject* LogOwner, |
Circle log. | |
| void | CircleLogf
(
const UObject* LogOwner, |
||
| void | Removes all logged data. | ||
| void | |||
| void | |||
| void | Disables recording to file and discards all data without saving it to file | ||
| void | EventLog
(
const UObject* LogOwner, |
Log events | |
| void | EventLog
(
const UObject* LogOwner, |
Log events | |
| void | |||
| void | EventLog
(
const UObject* LogOwner, |
Log events | |
| void | Log events | ||
| void | EventLog
(
const UObject* LogOwner, |
Log events | |
| void | EventLog
(
const UObject* LogOwner, |
Log events | |
| UObject * | FindRedirection
(
const UObject* Object |
Find and return redirection object for given object | |
| void | FlushEntry
(
FVisualLogEntry& Entry, |
Serializes a single entry and resets it. | |
| void | Moves all threads entries into the global entry map | ||
| void | GeometryBoxLogf
(
const UObject* LogOwner, |
||
| void | GeometryBoxLogf
(
const UObject* LogOwner, |
Box log. | |
| void | GeometryConvexLogf
(
const UObject* LogOwner, |
2d Convex shape | |
| void | GeometryConvexLogf
(
const UObject* LogOwner, |
||
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
Location/Sphere log. | |
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
||
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
Segment log. | |
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
||
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
Cylinder log. | |
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
||
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
Cone log. | |
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
||
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
3d Mesh log | |
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
||
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
||
| void | GeometryShapeLogf
(
const UObject* LogOwner, |
Capsule log. | |
| FVisualLogger & | Get () |
Static getter | |
| const TMap< FName, FVisualLogExtensionInterface * > & | Returns reference to map with all registered extension | ||
| const TArray< FName > & | Returns category allow list for logging | ||
| FChildToOwnerRedirectionMap & | |||
| const TArray< FVisualLogDevice * > & | GetDevices () |
Remove visual logger output device | |
| FVisualLogEntry * | GetEntryToWrite
(
const UObject* Object, |
Returns current entry for given TimeStamp or creates another one but first it serialize previous entry as completed to vislog devices. | |
| FVisualLogExtensionInterface * | GetExtensionForTag
(
const FName TagName |
Returns extension identified by given tag | |
| FVisualLogEntry * | GetLastEntryForObject
(
const UObject* Object |
Retrieves last used entry for given UObject | |
| FObjectToWorldMapType & | |||
| FOwnerToChildrenRedirectionMap & | GetRedirectionMap
(
const UObject* InObject |
||
| double | GetTimeStampForObject
(
const UObject* Object |
Returns time stamp for object | |
| int32 | GetUniqueId
(
double Timestamp |
Generates and returns Id unique for given timestamp - used to connect different logs between (ex. text log with geometry shape) | |
| void | HistogramDataLogf
(
const UObject* LogOwner, |
||
| void | HistogramDataLogf
(
const UObject* LogOwner, |
Histogram data. | |
| bool | Checks if all categories are blocked | ||
| bool | IsCategoryAllowed
(
const FName& Name |
||
| bool | IsCategoryLogged
(
const FLogCategoryBase& Category |
Check if log category can be recorded, verify before using GetEntryToWrite! | |
| bool | IsClassAllowed
(
const UClass& InClass |
||
| bool | IsObjectAllowed
(
const UObject* InObject |
||
| bool | IsRecording () |
Return information is vlog recording is enabled or not | |
| bool | |||
| bool | Return information is vlog recording is enabled or not | ||
| void | NavAreaShapeLogf
(
const UObject* LogOwner, |
||
| void | NavAreaShapeLogf
(
const UObject* LogOwner, |
NavArea/Extruded convex log. | |
| void | NavigationDataDump
(
const UObject* LogOwner, |
Navigation data debug snapshot. | |
| void | NavigationDataDump
(
const UObject* LogOwner, |
Navigation data debug snapshot. | |
| void | Set log owner redirection from one object to another, to combine logs | ||
| void | RegisterExtension
(
FName TagName, |
Register extension to use by LogVisualizer | |
| void | RemoveDevice
(
FVisualLogDevice* InDevice |
Remove visual logger output device | |
| void | SetGetTimeStampFunc
(
TFunction< double(const UObject*)> Function |
Sets function to call to get a timestamp instead of the default implementation (i.e. world time) | |
| void | SetIsRecording
(
const bool bInIsRecording |
Starts visual log collecting and recording | |
| void | SetIsRecordingOnServer
(
const bool bInIsRecording |
||
| void | SetIsRecordingToFile
(
bool InIsRecording |
Starts visual log collecting and recording | |
| void | SetIsRecordingToTrace
(
const bool bInIsRecording |
Starts visual log collecting and recording to insights traces (for Rewind Debugger) | |
| void | SetLogFileNameGetter
(
const FVisualLogFilenameGetterDelegate& InLogFileNameGetter |
FileName getter to set project specific file name for vlogs - highly encouraged to use FVisualLogFilenameGetterDelegate::CreateUObject with this | |
| void | SetUseUniqueNames
(
const bool bEnable |
Configure whether VisLog should be using decorated, unique names | |
| void | Shutdown () |
Called on engine shutdown to flush all, etc. | |
| void | Tick
(
float DeltaTime |
Flushes entries recorded in the frame | |
| void | UnregisterExtension
(
FName TagName, |
Removes previously registered extension |
Overridden from FOutputDevice
| Type | Name | Description | |
|---|---|---|---|
| void | Flush () |
Flush and serialize data if timestamp allows it |
Typedefs
| Name | Description |
|---|---|
| FChildToOwnerRedirectionMap | |
| FNavigationDataDump | |
| FObjectToWorldMapType | |
| FOwnerToChildrenRedirectionMap | |
| FVisualLoggerObjectEntryMap |
Constants
| Name | Description |
|---|---|
| bIsRecording | If set we are recording and collecting all vlog data |
| NavigationDataDumpDelegate | |
| WorldToRedirectionMap | Map for inter-objects redirections. |
Deprecated Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddCategoryToWhitelist
(
FName Category |
Use AddCategoryToAllowList instead | |
| void | AddWhitelistedClass
(
UClass& InClass |
Use AddObjectToAllowList instead | |
| void | AddWhitelistedObject
(
const UObject& InObject |
Use AddObjectToAllowList instead | |
| void | Use ClearCategoryAllowList instead |