HordeServer关于Log查看的问题

我们在使用Horde进行Build

有两个问题:

1、我们发现log偶现不同步,会有十分钟以上的滞后,在Horde的前端只能看到十分钟前的log,有时候会一直到这个step结束才能看到。虽然不是很急迫的需求,但是想问一下关于这个log及时性的问题有没有办法解决?

2、log中出现中文时会在前端看到乱码,并且下载到本地的文件中打开也是乱码。如何解决前端中文乱码的问题?如果无法解决是否可以更改windwos系统的语言,让Agent自动切换到英文?目前Agent是中文的Windows系统。或者有没有其他配置,可以在Horde的Agent的sandbox中不被清除让Editor进行build的时候使用英文避免出现中文乱码?

[Attachment Removed]

重现步骤
使用Horde对项目进行Build

[Attachment Removed]

很高兴看到有同学也在尝试Horde,目前已经使用了一段时间的Horde了,故试着回答这些问题,望兼听。

1、和大多数.Net应用一般,Horde这边也是选用了Serilog库来支持日志输出和记录,具体的代码可以参考`Engine\Source\Programs\Horde\HordeCmd\CmdApp.cs`下的CreateSerilogLogger。通常Serilog会有缓冲机制,所以造成问题中所述的现象,所以只需要禁用缓冲就能解决这个问题,但是需要掌握Horde Server的构建和部署的方法。如果同学使用了Docker来部署Horde可以直接参考 [[UFSH2025]Horde技术框架入门 | Jack Condon Epic Games 开发者关系资深工程师](https://www.bilibili.com/video/BV1F3UEBBETR?t=2064.8)

中所讲。如果是Windows安装文件的话,也是使用对应BuildGraph脚本中的HordeInstaller来构建出UnrealHordeServer.msi来安装。

2、除了古早的程序外,一般都是程序代码页(Code Page)导致的,可以去了解下相关知识。问题中提到的也是代码页的问题,根据1中你可以自己去修改代码来处理。也可以尝试按照 Windows 应用中使用 UTF-8 代码页 - Windows apps | Microsoft Learn 这篇文档中将agent机器修改后看问题是否改善。

3、不希望Horde的Agent的sandbox每次被都清除,我可以理解每次任务都会重新拉取整个工作区吧。我的建议是多读读Horde文档中stream.json配置说明,理解了相关概念后解决起来也很简单。其中“agentTypes”字段和“workspaceTypes”字段是造成问题中清除的根因。默认的打包构建任务使用了Full类型的workspace,这是为了保持构建环境的干净,所以会每次都尝试清除。我这边由于资源有限,所以将incremental和full合并了,是的增量和打包构建任务使用了如下配置的工作区:

WorkspaceNoMatterFullorIncremental

"WorkspaceNoMatterFullorIncremental":

{

  // Set a unique identifier to prevent overlap with other streams; will cause workspace to be synced to a different folder

  "identifier": "XXX",

  // Don't clean the contents of the workspace after building

  "incremental": true,

  // Use the native Perforce library to avoid p4\.exe dependency

  "method": "name\=managedWorkspace\&preferNativeClient\=true"

}

指定到我们希望的agent上,这样在特定agent上就不会出现重拉p4工作区的问题了。

[Attachment Removed]

好的 我去看一下

[Attachment Removed]

谢谢 周敏颐,补充一点可以使用 -culture=en 切换编辑器运行时语言为英语

[Attachment Removed]

好的 谢谢

[Attachment Removed]