- 一个可跨平台,简单,轻量,易维护的UE日志工具
- 解决UE项目打包发行版后,查看项目中手动添加的PrintLog等相关操作,无法轻易查看日志的问题
- 基于WebSocket通信,可以本地使用,也可以部署云端
UnrealLogger
- UE_Logger
- node_modules
- logger.js
Logger Server
- package.json
- package-lock.json
- websocat.exe
Windows Test Websocket Tool
- UnrealLogger
UE Plugin
- .gitignore
- README.md
Logger Server
:使用nodejs
开发
UE Plugin
:使用UE 5.2
开发,纯源码,需要使用C++项目编译,只用了UE
模块,理论上该插件也支持全平台,足够多的UE版本
websocat.exe
:启动Logger Server
后,在Windows
平台,可以简单使用该测试是否启用成功
- 系统运行环境需要
nodejs, npm
等 - UE项目是C++项目,添加该插件后,项目编译成功
-
使用控制台进入
UE_Logger
目录 -
运行
node logger.js
启动Logger Server
- 默认启动的是
127.0.0.1:6666
, 刷新间隔16ms
- 使用带参命令
node logger.js 127.0.0.1 7777 100
可以该Logger Server
的IP, Port, 刷新间隔
node logger.js <IP> <Port> <Interval>
- 默认启动的是
-
启动后,在
Windows
环境下,可以直接使用websocat.exe
测试
注意:使用前,先确保 Logger Server已经启动,并测试通过
如果:先启动了UE 客户端,再启动 Logger Server,应该是无法连接的,可以在客户端程序中,可以手动或特定时机触发 MakeLoggerSetting方法
-
初始化
Logger System
:初始化相关配置和启动WebSocket
服务 -
查看
PrintLog
方法 -
Log Type
介绍:- Normal -> level: 0
- Warning -> level: 1
- Error -> level:2
-
Log Setting
: -
Log Screen Color
,Log Screen Time
和UE printString
同理 -
测试蓝图:
运行结果:
-
结束打印
如果你电脑挂了代理,这个应该是代理的问题,关掉代理再测试
- 测试了一个Linux服务器,开发防火墙的
6666
端口 - 配置运行环境
node logger.js 0.0.0.0:6666
- 在本地主机(windows):
websocat.exe ws://公网IP:6666
即可
多了一个 IsUseWorldContextName
,目的是方便查看日志打印时,可以看见这条日志打印的所在位置,比如:UI, Actor, Level
等等;
优化了Logger Server
的打印样式,使用绿色显示连接状态
发送给Logger Server
的日志,默认增加了时间戳 UE 发送日志的时间
完善蓝图的使用体验,默认(WorldContextObject=Self, IsUseWorldContextName=True, LogType=Normal, Setting="Logger", LogScreenColor="0.0f, 0.66f, 1.0f, 1.0f", LogScreenTime=2.0f)
节点默认只显示LogText
,LogSetting
不再是结构体,而是默认折叠起来,和UE蓝图 printString节点相同
优化了 PrintLog
节点默认的展开参数为:LogType
, LogText
,方便快速设置打印日志的类型,打印目标默认为Screen, UE_LOG, UnrealLogger
修复了,传入Json
字符串,无法正确解析的问题(需要对传入字符内,所有的 ""
做转义)
- 修复打印
json
的相关问题 - 新增节点
SetGlobalSetting
,可以全局控制打印日志到何处
经过一段时间的使用,发现LogType
还是默认UE_Log-Logger
比较舒服