Rosium
(Rosium)
July 15, 2019, 9:07pm
1
I add
.h
Declare_Log_Category_Extern(MyLog, Log, All);
.cpp
Define_Log_Category(MyLog);
Once i compile I get these errors:
error C2146: syntax error: missing ‘;’ before identifier ‘MyLog’
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2780: ‘void FMsg::Logf_Internal(const ANSICHAR *,int32,const FName &,ELogVerbosity::Type,const FmtType &,Types…)’: expects 6 arguments - 4 provided
error C2065: ‘CompileTimeVerbosity’: undeclared identifier
error C2653: ‘FLogCategoryMyLog’: is not a class or namespace name
error C2065: ‘MyLog’: undeclared identifier
error C2672: ‘FMsg::Logf_Internal’: no matching overloaded function found
error C2146: syntax error: missing ‘;’ before identifier ‘MyLog’
I already checked the wiki for Logs and print messages, that didnt help.
Where is the proper location to declare and define a custom debug log within a script?
Is it within the class? Outside of the class? on top, underneath the includes?
Hello,
After over a year in maintenance mode, the official Unreal Engine Wiki is now permanently offline. These resources now live on a new community-run Unreal Engine Community Wiki — ue4community.wiki! You will be able to find content from the official...
Reading time: 1 mins 🕑
Likes: 13 ❤
I’m pretty sure there is log category in a cpp.
DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity);
So you should invert your declaration. From CPP to H and from H to CPP.
Rosium
(Rosium)
July 15, 2019, 9:29pm
3
@Przemek2222
I tried that instead of 15 errors i get 2 sets of the same error
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2146: syntax error: missing ‘;’ before identifier ‘MyLog’
In C++, capitalisation matters. Your post suggests you’ve used
Declare_Log_Category_Extern(MyLog, Log, All);
Instead of
DECLARE_LOG_CATEGORY_EXTERN(MyLog, Log, All);
And
Define_Log_Category(MyLog);
Instead of
DEFINE_LOG_CATEGORY(MyLog);
Update to use capitals and see if that fixes the issue.
Also, My DEFINE_LOG_CATEGORY are in .cpp and DECLATE_LOG_CATEGORY_EXTERN is in .h
Macros are written all with big letters so make sure you have
DECLARE_LOG_CATEGORY_EXTERN not Declare_Log_Category_Extern …
Rosium
(Rosium)
July 29, 2019, 6:47pm
6
I understand, However, i still received the same errors, all caps or not
This is what works for me. Hopefully it will help you as well.
In your project header file (MyProject.h), add the following:
DECLARE_LOG_CATEGORY_EXTERN(LogMyGame, Warning, All);
In your project cpp file (MyProject.cpp), add the following:
DEFINE_LOG_CATEGORY(LogMyGame);
Hope this helps.
Kruul
(Kruul)
February 22, 2021, 12:38pm
8
I was having the same issue in regard to the above and the compiler didn’t like the code until the custom logs were being implemented somewhere. Intellisense doesn’t like it and it throws a red.
In the game.h:
DECLARE_LOG_CATEGORY_EXTERN(YourLog, Verbose, All);
In the game.cpp:
DEFINE_LOG_CATEGORY(YourLog);
Implementation in my character.cpp. Include the game.h:
UE_LOG(YourLog, Warning, TEXT("YourLog Warning"));
It runs and allows all variations of the custom debug message e.g. Verbose, Very Verbose etc.
Hope this helps.
2 Likes