You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Unreal Engine应用日志轮转及Windows写锁定文件修改工具咨询

Unreal Engine应用日志轮转及Windows写锁定文件修改工具咨询

针对你的需求,我分两部分来解答——优先推荐Unreal Engine原生的日志轮转方案(这是最适配、最安全的方式),再补充Windows平台下处理写锁定文件的备选工具和方法:

一、Unreal Engine 原生日志轮转实现

UE自带的日志系统已经支持自动轮转配置,无需额外工具,还能完美适配长时间运行的场景:

1. 配置文件持久化设置(推荐)

在项目的Config/DefaultEngine.ini(如果需要仅针对Windows生效,可修改Config/Windows/WindowsEngine.ini)中添加或更新以下配置项:

[Core.Log]
; 设置单个日志文件的最大容量,示例为100MB(单位:字节,100*1024*1024)
LogMaxSize=104857600
; 设置保留的历史日志文件最大数量,超出会自动删除最旧的文件
LogMaxBackupFiles=10
; 启用日志自动轮转功能
bLogRotate=true
; 可选:开启日志实时刷盘,避免程序意外退出时丢失未写入的日志
LogAutoFlush=true

修改后重启你的UE项目,当单个日志文件达到LogMaxSize设定的大小后,UE会自动将当前日志重命名(比如YourProject.logYourProject_1.log),然后创建新的YourProject.log继续写入,全程不影响程序运行。

2. 命令行临时配置

如果不想修改项目配置文件,也可以在启动UE可执行文件时,通过命令行参数临时启用轮转:

YourProject.exe -LogMaxSize=104857600 -LogMaxBackupFiles=10 -LogRotate

这种方式适合测试场景,或者需要针对不同启动实例设置不同轮转规则的情况。

3. 自定义模块日志单独轮转

如果你的项目有自定义模块,需要对特定模块的日志单独设置轮转规则,可以在[Core.Log]下为目标模块单独配置:

[Core.Log]
; 将MyCustomModule的日志输出到单独文件
LogMyCustomModule=Warning, LogMyCustomModule.log
; 针对该自定义日志文件设置轮转:50MB上限,保留3个历史文件
LogMyCustomModule.MaxSize=52428800
LogMyCustomModule.MaxBackupFiles=3
LogMyCustomModule.Rotate=true

二、Windows下处理写锁定文件的工具(备选方案)

如果因为特殊场景无法使用UE原生轮转,需要处理已被程序写锁定的日志文件,以下是Windows平台的常用工具,但务必注意:直接操作写锁定文件可能导致程序崩溃、日志丢失,仅建议在紧急或非核心场景使用

1. Sysinternals 工具集(微软官方)

微软的Sysinternals套件里有两个实用工具,专门处理文件锁定问题:

  • Handle.exe:命令行工具,可快速定位锁定文件的进程,甚至强制关闭文件句柄。示例命令:
    ; 查找锁定目标日志文件的进程和句柄信息
    handle.exe YourProject.log
    ; 强制关闭对应句柄(替换<HandleID>和<ProcessID>为实际输出的ID)
    handle.exe -c <HandleID> -p <ProcessID> -y
    
    关闭句柄后即可正常移动/修改日志文件,但可能导致UE后续日志写入失败,操作前请做好风险评估。
  • Process Explorer:图形化工具,操作更直观。找到运行中的UE进程,右键选择「Properties」→「Handles」,在搜索框输入日志文件名,找到对应句柄后右键关闭即可。

2. 卷影副本(VSS)无干扰复制

利用Windows的卷影副本服务,可以在不破坏原文件锁定状态的前提下,复制日志文件的快照:

  • vssadmin命令创建目标磁盘的卷影副本:
    vssadmin create shadow /for=C:
    
    命令执行后会返回卷影副本的路径(类似\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1),从该路径复制日志文件即可,完全不影响正在运行的UE程序。

3. Robocopy 镜像复制

使用Windows自带的robocopy命令,结合VSS功能也可以复制锁定文件:

robocopy "C:\YourProject\Saved\Logs" "C:\Backup\Logs" YourProject.log /MIR

该命令会自动利用卷影副本完成复制,无需手动创建快照。

三、关键提醒

  • 优先选择UE原生日志轮转方案,这是最适配、最安全的方式,不会对长时间运行的程序造成任何风险。
  • 若必须使用Windows工具处理锁定文件,操作前务必备份相关日志文件,避免数据丢失。
  • 对于长时间运行的UE服务,建议定期监控日志目录的磁盘占用,确保轮转配置正常生效。

火山引擎 最新活动