HsMod项目命令行启动导致日志缺失问题的分析与解决方案

HsMod项目命令行启动导致日志缺失问题的分析与解决方案

【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 【免费下载链接】HsMod 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod

问题背景

在HsMod项目中,用户反馈通过命令行启动游戏时会出现部分日志文件缺失的情况,特别是Decks.log等重要日志文件的缺失,这直接影响了Firestone等依赖这些日志的插件无法正常工作。经过分析,这是一个典型的日志配置覆盖问题。

问题原因分析

通过对比完整启动和命令行启动两种方式产生的日志文件,我们发现:

  1. 完整启动日志包含:

    • Achievements.log
    • Asset.log
    • BattleNet.log
    • Decks.log
    • ExceptionReporter.log
    • GameNetLogger.log
    • Hearthstone.log
    • LoadingScreen.log
    • Login.log
    • Net.log
    • Offline.log
  2. 命令行启动日志仅包含:

    • Asset.log
    • BattleNet.log
    • ExceptionReporter.log
    • GameNetLogger.log
    • Hearthstone.log
    • Login.log
    • Offline.log

核心差异在于命令行启动时缺少了Decks.log等关键日志文件。深入研究发现,这是因为命令行启动方式会覆盖游戏的默认日志配置,导致部分日志模块未被正确初始化。

技术原理

HsMod项目通过修改HsClient.config文件来实现特殊启动方式。原配置仅包含基本的连接参数,缺少完整的日志配置参数。当游戏启动时:

  1. 完整启动会加载游戏内置的完整日志配置
  2. 命令行启动则仅使用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

关键配置说明:

  1. [Power]节启用了文件日志记录(FilePrinting)
  2. 设置了详细的日志级别(Verbose=true)
  3. [Log]节移除了日志文件大小限制

注意事项

  1. 日志文件大小:启用完整日志后,长时间运行游戏可能导致日志文件体积过大,特别是对于挂机脚本用户需要注意定期清理
  2. 性能影响:详细的日志记录可能会轻微影响游戏性能
  3. 隐私考虑:Net.log等文件包含敏感信息,分享时需谨慎

总结

通过完善HsClient.config文件的日志配置,可以解决命令行启动导致的日志缺失问题。这一方案不仅修复了Firestone等插件的兼容性问题,也为需要完整日志分析的用户提供了更好的支持。用户可根据实际需求调整日志详细程度,在功能完整性和系统资源消耗之间取得平衡。

【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 【免费下载链接】HsMod 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值