HsMod项目命令行启动导致日志缺失问题的分析与解决方案
【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod
问题背景
在HsMod项目中,用户反馈通过命令行启动游戏时会出现部分日志文件缺失的情况,特别是Decks.log等重要日志文件的缺失,这直接影响了Firestone等依赖这些日志的插件无法正常工作。经过分析,这是一个典型的日志配置覆盖问题。
问题原因分析
通过对比完整启动和命令行启动两种方式产生的日志文件,我们发现:
-
完整启动日志包含:
- Achievements.log
- Asset.log
- BattleNet.log
- Decks.log
- ExceptionReporter.log
- GameNetLogger.log
- Hearthstone.log
- LoadingScreen.log
- Login.log
- Net.log
- Offline.log
-
命令行启动日志仅包含:
- Asset.log
- BattleNet.log
- ExceptionReporter.log
- GameNetLogger.log
- Hearthstone.log
- Login.log
- Offline.log
核心差异在于命令行启动时缺少了Decks.log等关键日志文件。深入研究发现,这是因为命令行启动方式会覆盖游戏的默认日志配置,导致部分日志模块未被正确初始化。
技术原理
HsMod项目通过修改HsClient.config文件来实现特殊启动方式。原配置仅包含基本的连接参数,缺少完整的日志配置参数。当游戏启动时:
- 完整启动会加载游戏内置的完整日志配置
- 命令行启动则仅使用HsClient.config中的简化配置
这种差异导致了日志模块初始化的不完整,进而影响了依赖这些日志的第三方插件。
解决方案
社区贡献者Dzknow提出了有效的修复方案:在HsClient.config配置文件中添加完整的日志配置参数。具体修改如下:
[Config]
Version = 3
[Aurora]
VerifyWebCredentials = "token"
ClientCheck = 0
Env.Override = 1
Env = cn.actual.battlenet.com.cn
[Power]
LogLevel=1
FilePrinting=true
ConsolePrinting=false
ScreenPrinting=false
Verbose=true
[Log]
FileSizeLimit.Int=-1
关键配置说明:
[Power]节启用了文件日志记录(FilePrinting)- 设置了详细的日志级别(Verbose=true)
[Log]节移除了日志文件大小限制
注意事项
- 日志文件大小:启用完整日志后,长时间运行游戏可能导致日志文件体积过大,特别是对于挂机脚本用户需要注意定期清理
- 性能影响:详细的日志记录可能会轻微影响游戏性能
- 隐私考虑:Net.log等文件包含敏感信息,分享时需谨慎
总结
通过完善HsClient.config文件的日志配置,可以解决命令行启动导致的日志缺失问题。这一方案不仅修复了Firestone等插件的兼容性问题,也为需要完整日志分析的用户提供了更好的支持。用户可根据实际需求调整日志详细程度,在功能完整性和系统资源消耗之间取得平衡。
【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



