UELOG虚幻4日志输出和自定义日志

UELOG虚幻4日志输出和自定义日志

内容:

  1. UE4的默认日志输出
  2. 自定义日志
  3. 简化自定义日志
  4. 格式化日志输出

具体来讲

1.UE4的默认日志输出

使用UE4自带的日志输出,如果只是想简单的实现日志输出就可以使用默认的日志输出。默认的日志输出使用如下:

UE_LOG(LogTemp, Log, TEXT("你的文本串"));
//3个参数 1.日志分类2.级别,3.输出内容 用TEXT构建的文本

讲一下前面3个参数:

  • 第一个参数: 表示日志分类 (这个是可以自定义的) 它决定了内容输入到控制台时的分类项
  • 第二个参数:日志类型 分为Fatal 、Error 、Warning、Display、Log 、Verbose 、VeryVerbose 其中Verbose的意思是冗余的,冗长的

其中前两个会让你的程序停止,Warning、Display、Log 这三个是较常用的日志分类项,在控制台日志输出里显示,最后两个类型是记录到日志文件里(日志文件在:工作目录–>save–>Log)

  • 第三个参数: 就是你的内容,但是需要用TEXT的文本宏

2.自定义日志

在开发项目的时候,日志级别和类型可能会多种多样,通过这些不同类型的日志和不同的日志级别我们能够很快地知道是哪里出了错,出错类型是什么。所以很有必要自定义日志类型。自定义日志类型的步骤分为2步:

  1. 找个地方声明日志: 声明日志的语法为:
    DECLARE_ LOG_CATEGORY EXTERN(CategoryName, DefaultVerbosity, Compile TimeVerbosity);
    当然里面需要填入参数,第一个参数就是自己的日志名称,第二个参数是级别,第三个参数是范围。 下面就是定义了一个日志输出
DECLARE_LOG_CATEGORY_EXTERN(UE4LOG, Log, All);

对应的第一个名称是
UE4LOG,第一个参数天填写的是Log,第三个填入的是All。 其中第一个很好理解,是日志分类名称,第二个是上面写的Fatal 、Error 、Warning、Display、Log 、Verbose、VeryVerbose中的一个,是日志分类,第三个是日志编译级别,自定义的时候填入All就行。

  1. 定义日志:使用DEFINE_LOG_CATEGORY来实现对已经写好的声明进行定义
//实现之定义日志级别
DEFINE_LOG_CATEGORY(UE4LOG);
//参数就填入声明的日志

[注意]自己写的神明和定义,在使用的时候一定要包含你写自定义日志的头文件

  1. 使用自定义日志:
    在需要使用自定义日志的地方填写即可。
    按照上面的自定义梳理一下:
			DECLARE_LOG_CATEGORY_EXTERN(UE4LOG, Log, All);//声明在头文件里
			DEFINE_LOG_CATEGORY(UE4LOG);//定义在cpp文件里
			UE_LOG(UE4LOG, Log, TEXT("HEllo"));//使用

结果如图所示:
自定义日志

3. 简化自定义日志

在上面的自定义日志UE4LOG可以被简化为下面的:

			//简化日志
			#define SimpleLog(x) UE_LOG(UE4LOG, Log, x);

			//更简化的日志
			#define SLOG(x) UE_LOG(UE4LOG, Log, TEXT(x));

其中在第一个简化日志里使用的话就只需要输入下面的代码即可

			SimpleLog(TEXT("SimpleLOG"));

但是为了不想输入TEXT()文本宏就可以继续简化,就是使用宏定义将参数放进去,就是上面的更简化的日志 #define SLOG(x) UE_LOG(UE4LOG, Log, TEXT(x));
[注意]这个简化是简化自己写的那个日志
使用的时候就使用

			SLOG("SLOG");//这样就可以了

结果图可以在最后面的图看到

4.格式化输出

格式化输出和c语言类似,填写占位符后填入具体值。
例如:

UE_LOG(LogTemp, Log, TEXT("今日天气:%s,温度:%.2f, 湿度:%.2f,"), TEXT("多云转晴"), 23.5f, 16.8f);

格式化出入日志

猜你喜欢

转载自blog.csdn.net/qq_40669895/article/details/121588628