在软件项目中,日志一直扮演着一个及其重要的角色。程序员经常依赖它来定位问题,在某些不方便调试的情况下,日志甚至是唯一一个可以依赖的工具。虚幻作为一个游戏引擎,它的强大体现在各个方面,也包括日志系统。在本文里我就引擎提供的三种打日志的方式来介绍这一系统。
提到日志,大概我们第一个想到的就是在输出终端上打印的日志。对于这类日志引擎提供了UE_LOG宏来实现。UE_LOG不仅仅有了种类众多的预定义(Category)种类,还有日志级别(Verbosity)控制。预定义的日志种类声明可以查看CoreGlobal.h文件。我们选择LogTemp这个预定义的日志种类来举例,比如如下的代码:
UE_LOG(LogTemp, Log, TEXT("Hit, hit"));
UE_LOG(LogTemp, Warning, TEXT("Hit, hit"));
UE_LOG(LogTemp, Error, TEXT("Hit, hit"));
这段程序运行起来后会在引擎编辑器里的Output Log窗口输出这样的日志:
UE_LOG宏的第一个参数就是日志种类(Category),第二个是日志级别(Verbosity),剩下的就是日志内容了。我们可以看到编辑器根据日志级别的不同,特意用不同的颜色打印日志,以方便我们查看。当日志数量过多时,我们还可以根据种类(Category)对日志进行过滤,只查看我们感兴趣的类别。
除了使用引擎预定义的日志种类输出,我们还可以自定义日志种类(Category)。比如我们的模块叫FPSGame,我们可以在模块头文件上