UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LogMacros.h File Reference

Go to the source code of this file.

Classes

struct  FMsg
 

Namespaces

namespace  UE
 
namespace  UE::Logging
 
namespace  UE::Logging::Private
 
namespace  UEAsserts_Private
 

Macros

#define UE_LOG_INCLUDE_SOURCE_LOCATION   1
 
#define UE_PRIVATE_LOG_USE_STATIC_RECORD   1
 
#define COMPILED_IN_MINIMUM_VERBOSITY   VeryVerbose
 
#define UE_LOG_EXPAND_IS_FATAL(Verbosity, ActiveBlock, InactiveBlock)   UE_JOIN(UE_LOG_EXPAND_IS_FATAL_, Verbosity)(ActiveBlock, InactiveBlock)
 
#define UE_LOG_EXPAND_IS_FATAL_Fatal( ActiveBlock, InactiveBlock)   ActiveBlock
 
#define UE_LOG_EXPAND_IS_FATAL_Error( ActiveBlock, InactiveBlock)   InactiveBlock
 
#define UE_LOG_EXPAND_IS_FATAL_Warning( ActiveBlock, InactiveBlock)   InactiveBlock
 
#define UE_LOG_EXPAND_IS_FATAL_Display( ActiveBlock, InactiveBlock)   InactiveBlock
 
#define UE_LOG_EXPAND_IS_FATAL_Log( ActiveBlock, InactiveBlock)   InactiveBlock
 
#define UE_LOG_EXPAND_IS_FATAL_Verbose( ActiveBlock, InactiveBlock)   InactiveBlock
 
#define UE_LOG_EXPAND_IS_FATAL_VeryVerbose(ActiveBlock, InactiveBlock)   InactiveBlock
 
#define UE_LOG_EXPAND_IS_FATAL_All( ActiveBlock, InactiveBlock)   InactiveBlock
 
#define UE_LOG_EXPAND_IS_FATAL_SetColor( ActiveBlock, InactiveBlock)   InactiveBlock
 
#define UE_LOG_SOURCE_FILE(File)   "Unknown"
 
#define UE_LOG_ACTIVE(CategoryName, Verbosity)   (::UEAsserts_Private::IsLogActive<(int32)ELogVerbosity::Verbosity>(CategoryName))
 
#define UE_GET_LOG_VERBOSITY(CategoryName)    CategoryName.GetVerbosity()
 
#define UE_SET_LOG_VERBOSITY(CategoryName, Verbosity)    CategoryName.SetVerbosity(ELogVerbosity::Verbosity);
 
#define UE_LOG(CategoryName, Verbosity, Format, ...)    UE_PRIVATE_LOG(UE_EMPTY, constexpr, CategoryName, Verbosity, Format, ##__VA_ARGS__)
 
#define UE_LOG_REF(CategoryRef, Verbosity, Format, ...)    UE_PRIVATE_LOG(UE_EMPTY, UE_EMPTY, CategoryRef, Verbosity, Format, ##__VA_ARGS__)
 
#define UE_LOG_CLINKAGE   UE_LOG
 
#define UE_CLOG(Condition, CategoryName, Verbosity, Format, ...)    UE_PRIVATE_LOG(if (Condition), constexpr, CategoryName, Verbosity, Format, ##__VA_ARGS__)
 
#define UE_PRIVATE_LOG(Condition, CategoryConst, Category, Verbosity, Format, ...)
 
#define UE_SUPPRESS(CategoryName, Verbosity, ExecuteIfUnsuppressed)
 
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
 
#define DEFINE_LOG_CATEGORY(CategoryName)   FLogCategory##CategoryName CategoryName;
 
#define DEFINE_LOG_CATEGORY_STATIC(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
 
#define DECLARE_LOG_CATEGORY_CLASS(CategoryName, DefaultVerbosity, CompileTimeVerbosity)    DEFINE_LOG_CATEGORY_STATIC(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
 
#define DEFINE_LOG_CATEGORY_CLASS(Class, CategoryName)   Class::FLogCategory##CategoryName Class::CategoryName;
 
#define NOTIFY_CLIENT_OF_SECURITY_EVENT_IF_NOT_SHIPPING(NetConnection, SecurityPrint)
 
#define logOrEnsureNanError(_FormatString_, ...)
 

Functions

template<int32 VerbosityToCheck, typename CategoryType >
UE_FORCEINLINE_HINT bool UEAsserts_Private::IsLogActive (const CategoryType &Category)
 

Variables

CORE_API int32 GEnsureOnNANDiagnostic
 

Macro Definition Documentation

◆ COMPILED_IN_MINIMUM_VERBOSITY

#define COMPILED_IN_MINIMUM_VERBOSITY   VeryVerbose

◆ DECLARE_LOG_CATEGORY_CLASS

#define DECLARE_LOG_CATEGORY_CLASS (   CategoryName,
  DefaultVerbosity,
  CompileTimeVerbosity 
)     DEFINE_LOG_CATEGORY_STATIC(CategoryName, DefaultVerbosity, CompileTimeVerbosity)

A macro to declare a logging category as a C++ "class static"

Parameters
CategoryName,categoryto declare
DefaultVerbosity,defaultrun time verbosity
CompileTimeVerbosity,maximumverbosity to compile into the code

◆ DECLARE_LOG_CATEGORY_EXTERN

#define DECLARE_LOG_CATEGORY_EXTERN (   CategoryName,
  DefaultVerbosity,
  CompileTimeVerbosity 
)
Value:
extern struct FLogCategory##CategoryName : public FLogCategory<ELogVerbosity::DefaultVerbosity, ELogVerbosity::CompileTimeVerbosity> \
{ \
UE_FORCEINLINE_HINT FLogCategory##CategoryName() : FLogCategory(TEXT(#CategoryName)) {} \
} CategoryName;
#define TEXT(x)
Definition Platform.h:1272
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
Definition LogCategory.h:86

A macro to declare a logging category as a C++ "extern", usually declared in the header and paired with DEFINE_LOG_CATEGORY in the source. Accessible by all files that include the header.

Parameters
CategoryName,categoryto declare
DefaultVerbosity,defaultrun time verbosity
CompileTimeVerbosity,maximumverbosity to compile into the code

◆ DEFINE_LOG_CATEGORY

#define DEFINE_LOG_CATEGORY (   CategoryName)    FLogCategory##CategoryName CategoryName;

A macro to define a logging category, usually paired with DECLARE_LOG_CATEGORY_EXTERN from the header.

Parameters
CategoryName,categoryto define

◆ DEFINE_LOG_CATEGORY_CLASS

#define DEFINE_LOG_CATEGORY_CLASS (   Class,
  CategoryName 
)    Class::FLogCategory##CategoryName Class::CategoryName;

A macro to define a logging category, usually paired with DECLARE_LOG_CATEGORY_CLASS from the header.

Parameters
CategoryName,categoryto define

◆ DEFINE_LOG_CATEGORY_STATIC

#define DEFINE_LOG_CATEGORY_STATIC (   CategoryName,
  DefaultVerbosity,
  CompileTimeVerbosity 
)
Value:
static struct FLogCategory##CategoryName : public FLogCategory<ELogVerbosity::DefaultVerbosity, ELogVerbosity::CompileTimeVerbosity> \
{ \
static_assert(ELogVerbosity::DefaultVerbosity <= ELogVerbosity::CompileTimeVerbosity, "Default verbosity of log category cannot be higher than its compile time verbosity"); \
UE_FORCEINLINE_HINT FLogCategory##CategoryName() : FLogCategory(TEXT(#CategoryName)) {} \
} CategoryName;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127

A macro to define a logging category as a C++ "static". This should ONLY be declared in a source file. Only accessible in that single file.

Parameters
CategoryName,categoryto declare
DefaultVerbosity,defaultrun time verbosity
CompileTimeVerbosity,maximumverbosity to compile into the code

◆ logOrEnsureNanError

#define logOrEnsureNanError (   _FormatString_,
  ... 
)

◆ NOTIFY_CLIENT_OF_SECURITY_EVENT_IF_NOT_SHIPPING

#define NOTIFY_CLIENT_OF_SECURITY_EVENT_IF_NOT_SHIPPING (   NetConnection,
  SecurityPrint 
)
Value:
NetConnection->FlushNet(true)
Definition DataChannel.h:42

◆ UE_CLOG

#define UE_CLOG (   Condition,
  CategoryName,
  Verbosity,
  Format,
  ... 
)     UE_PRIVATE_LOG(if (Condition), constexpr, CategoryName, Verbosity, Format, ##__VA_ARGS__)

A macro that conditionally logs a formatted message if the log category is active at the requested verbosity level.

Note
The condition is not evaluated unless the log category is active at the requested verbosity level.
Parameters
ConditionCondition that must evaluate to true in order for the message to be logged.
CategoryNameName of the log category as provided to DEFINE_LOG_CATEGORY.
VerbosityVerbosity level of this message. See ELogVerbosity.
FormatFormat string literal in the style of printf.

◆ UE_GET_LOG_VERBOSITY

#define UE_GET_LOG_VERBOSITY (   CategoryName)     CategoryName.GetVerbosity()

◆ UE_LOG

#define UE_LOG (   CategoryName,
  Verbosity,
  Format,
  ... 
)     UE_PRIVATE_LOG(UE_EMPTY, constexpr, CategoryName, Verbosity, Format, ##__VA_ARGS__)

A macro that logs a formatted message if the log category is active at the requested verbosity level.

Parameters
CategoryNameName of the log category as provided to DEFINE_LOG_CATEGORY.
VerbosityVerbosity level of this message. See ELogVerbosity.
FormatFormat string literal in the style of printf.

◆ UE_LOG_ACTIVE

#define UE_LOG_ACTIVE (   CategoryName,
  Verbosity 
)    (::UEAsserts_Private::IsLogActive<(int32)ELogVerbosity::Verbosity>(CategoryName))

A predicate that returns true if the given logging category is active (logging) at a given verbosity level

Parameters
CategoryNamename of the logging category
Verbosity,verbositylevel to test against

◆ UE_LOG_CLINKAGE

#define UE_LOG_CLINKAGE   UE_LOG

◆ UE_LOG_EXPAND_IS_FATAL

#define UE_LOG_EXPAND_IS_FATAL (   Verbosity,
  ActiveBlock,
  InactiveBlock 
)    UE_JOIN(UE_LOG_EXPAND_IS_FATAL_, Verbosity)(ActiveBlock, InactiveBlock)

◆ UE_LOG_EXPAND_IS_FATAL_All

#define UE_LOG_EXPAND_IS_FATAL_All (   ActiveBlock,
  InactiveBlock 
)    InactiveBlock

◆ UE_LOG_EXPAND_IS_FATAL_Display

#define UE_LOG_EXPAND_IS_FATAL_Display (   ActiveBlock,
  InactiveBlock 
)    InactiveBlock

◆ UE_LOG_EXPAND_IS_FATAL_Error

#define UE_LOG_EXPAND_IS_FATAL_Error (   ActiveBlock,
  InactiveBlock 
)    InactiveBlock

◆ UE_LOG_EXPAND_IS_FATAL_Fatal

#define UE_LOG_EXPAND_IS_FATAL_Fatal (   ActiveBlock,
  InactiveBlock 
)    ActiveBlock

◆ UE_LOG_EXPAND_IS_FATAL_Log

#define UE_LOG_EXPAND_IS_FATAL_Log (   ActiveBlock,
  InactiveBlock 
)    InactiveBlock

◆ UE_LOG_EXPAND_IS_FATAL_SetColor

#define UE_LOG_EXPAND_IS_FATAL_SetColor (   ActiveBlock,
  InactiveBlock 
)    InactiveBlock

◆ UE_LOG_EXPAND_IS_FATAL_Verbose

#define UE_LOG_EXPAND_IS_FATAL_Verbose (   ActiveBlock,
  InactiveBlock 
)    InactiveBlock

◆ UE_LOG_EXPAND_IS_FATAL_VeryVerbose

#define UE_LOG_EXPAND_IS_FATAL_VeryVerbose (   ActiveBlock,
  InactiveBlock 
)    InactiveBlock

◆ UE_LOG_EXPAND_IS_FATAL_Warning

#define UE_LOG_EXPAND_IS_FATAL_Warning (   ActiveBlock,
  InactiveBlock 
)    InactiveBlock

◆ UE_LOG_INCLUDE_SOURCE_LOCATION

#define UE_LOG_INCLUDE_SOURCE_LOCATION   1

◆ UE_LOG_REF

#define UE_LOG_REF (   CategoryRef,
  Verbosity,
  Format,
  ... 
)     UE_PRIVATE_LOG(UE_EMPTY, UE_EMPTY, CategoryRef, Verbosity, Format, ##__VA_ARGS__)

DO NOT USE. A macro that logs a formatted message if the log category is active at the requested verbosity level.

Note
This does not trace the category correctly and will be deprecated in a future release.
Parameters
CategoryRefA reference to an instance of FLogCategoryBase.
VerbosityVerbosity level of this message. See ELogVerbosity.
FormatFormat string literal in the style of printf.

◆ UE_LOG_SOURCE_FILE

#define UE_LOG_SOURCE_FILE (   File)    "Unknown"

◆ UE_PRIVATE_LOG

#define UE_PRIVATE_LOG (   Condition,
  CategoryConst,
  Category,
  Verbosity,
  Format,
  ... 
)
Value:
{ \
static_assert(std::is_const_v<std::remove_reference_t<decltype(Format)>>, "Formatting string must be a const TCHAR array."); \
static_assert(TIsArrayOrRefOfTypeByPredicate<decltype(Format), TIsCharEncodingCompatibleWithTCHAR>::Value, "Formatting string must be a TCHAR array."); \
UE_IF(LOGTRACE_ENABLED, static ::UE::Logging::Private::FStaticBasicLogDynamicData LOG_Dynamic, ); \
static_assert((::ELogVerbosity::Verbosity & ::ELogVerbosity::VerbosityMask) < ::ELogVerbosity::NumVerbosity && ::ELogVerbosity::Verbosity > 0, "Verbosity must be constant and in range."); \
{ \
Condition \
{ \
::UE::Logging::Private::BasicFatalLog(LOG_Static, &Category, ##__VA_ARGS__); \
CA_ASSUME(false); \
} \
} \
else if constexpr ((::ELogVerbosity::Verbosity & ::ELogVerbosity::VerbosityMask) <= ::ELogVerbosity::COMPILED_IN_MINIMUM_VERBOSITY) \
{ \
if CategoryConst ((::ELogVerbosity::Verbosity & ::ELogVerbosity::VerbosityMask) <= Category.GetCompileTimeVerbosity()) \
{ \
if (!Category.IsSuppressed(::ELogVerbosity::Verbosity)) \
{ \
Condition \
{ \
::UE::Logging::Private::BasicLog<::ELogVerbosity::Verbosity>(LOG_Static, &Category, ##__VA_ARGS__); \
} \
} \
} \
} \
}
#define UE_PRIVATE_LOG_USE_STATIC_RECORD
Definition LogMacros.h:28
#define LOGTRACE_ENABLED
Definition LogTrace.h:19
#define UE_IF(OneOrZero, Token1, Token0)
Definition PreprocessorHelpers.h:18
if(Failed) console_printf("Failed.\n")
Category
Definition DiffResults.h:63
Definition GenericPlatformFile.h:25
@ VerbosityMask
Definition LogVerbosity.h:58
Definition OverriddenPropertySet.cpp:45
Definition AdvancedWidgetsModule.cpp:13
Definition IsArrayOrRefOfTypeByPredicate.h:13
Definition IsCharEncodingCompatibleWith.h:65

Private macro used to implement the public log macros. DO NOT CALL DIRECTLY!

◆ UE_PRIVATE_LOG_USE_STATIC_RECORD

#define UE_PRIVATE_LOG_USE_STATIC_RECORD   1

◆ UE_SET_LOG_VERBOSITY

#define UE_SET_LOG_VERBOSITY (   CategoryName,
  Verbosity 
)     CategoryName.SetVerbosity(ELogVerbosity::Verbosity);

◆ UE_SUPPRESS

#define UE_SUPPRESS (   CategoryName,
  Verbosity,
  ExecuteIfUnsuppressed 
)
Value:
{ \
static_assert((ELogVerbosity::Verbosity & ELogVerbosity::VerbosityMask) < ELogVerbosity::NumVerbosity && ELogVerbosity::Verbosity > 0, "Verbosity must be constant and in range."); \
CA_CONSTANT_IF((ELogVerbosity::Verbosity & ELogVerbosity::VerbosityMask) <= ELogVerbosity::COMPILED_IN_MINIMUM_VERBOSITY && (ELogVerbosity::Verbosity & ELogVerbosity::VerbosityMask) <= FLogCategory##CategoryName::CompileTimeVerbosity) \
{ \
if (!CategoryName.IsSuppressed(ELogVerbosity::Verbosity)) \
{ \
FScopedCategoryAndVerbosityOverride TEMP__##CategoryName(CategoryName.GetCategoryName(), ELogVerbosity::Type(ELogVerbosity::Verbosity & ELogVerbosity::VerbosityMask)); \
CategoryName.PostTrigger(ELogVerbosity::Verbosity); \
} \
} \
}
Definition LogScopedCategoryAndVerbosityOverride.h:15
Type
Definition LogVerbosity.h:17
@ NumVerbosity
Definition LogVerbosity.h:57

A macro that executes some code within a scope if a given logging category is active at a given verbosity level Also, withing the scope of the execution, the default category and verbosity is set up for the low level logging functions.

Parameters
CategoryNamename of the logging category
Verbosity,verbositylevel to test against
ExecuteIfUnsuppressed,codeto execute if the verbosity level for this category is being displayed

Variable Documentation

◆ GEnsureOnNANDiagnostic

CORE_API int32 GEnsureOnNANDiagnostic
extern