日志接口

用于从Epic在线服务SDK获取日志消息的接口

日志接口 使开发者能从 Epic在线服务(EOS)SDK 获得有用的输出信息,以便在开发期间以及产品发布后诊断技术问题。与EOS SDK中的其他接口不同,日志接口不与远程机器通信,而且不需要句柄。

接收日志数据

若要从EOS SDK接收日志输出,请通过将回调函数传递给 EOS_Logging_SetCallback 函数来注册回调函数(类型为 EOS_LogMessageFunc)。每当另一个接口生成日志输出时,你的函数将接收到一个包含相关数据信息的 EOS_LogMessage 数据结构。EOS会管理此数据的内存,而且可以在回调函数结束后随时删除它,所以假如你想在回调函数生命周期结束后保留某些信息,你必须手动复制它们。

过滤日志数据

日志接口内置过滤系统,可以帮助你快速挑选出你所需的信息。EOS生成的所有日志都有一个类别,用于指示哪个子系统或接口创建了它们,另外还有一个"详情"(verbosity)等级,用于表示日志的总体重要性。你可以过滤出任何类别或所有类别的消息,这样只有符合给定详情级别的消息才会触发回调函数。为此,请使用类别信息(通过 EOS_ELogCategory)和详情信息(通过 EOS_ELogLevel)调用 EOS_Logging_SetLogLevel。你还可以同时设置所有类别的级别,并且可以完整过滤一个或多个类别。下面的代码片段展示了几个示例:

// 将所有类别设置成"警告"级别;忽略所有重要程度低于"警告"级别的内容。
EOS_Logging_SetLogLevel(EOS_LC_ALL_CATEGORIES, EOS_LOG_Warning);

// 如果是好友界面,就提高过滤程度;我们只需要重要程度为"错误"或高于"错误"等级的信息(而非"警告")。
EOS_Logging_SetLogLevel(EOS_LC_Friends, EOS_LOG_Error);

// 报告所有来自Ecom的内容。可能是我们当前调试的某些内容,所以我们希望获得所有日志信息。
EOS_Logging_SetLogLevel(EOS_LC_Ecom, EOS_LOG_VeryVerbose);

// 我们不需要来自大厅界面的日志输出,所以将它完全关闭。
EOS_Logging_SetLogLevel(EOS_LC_Lobby, EOS_LOG_Off);

默认情况下,所有类别都会将所有日志数据报告到回调函数。