
RedLogger
允许Redscript模组将日志记录到专用的日志文件中,这些日志还可以通过游戏内的原生界面查看;无需CET即可查看日志。._.)/\(._.
查看大图- 简介 -
长久以来,对于RedScript模组而言,要写出可读的日志,唯一合理的途径是将其路由到Cyber Engine Tweaks及其Gamelog.log。一份共享文件,所有人都在争抢写入,并且仅仅为了查看模组在做什么,就得额外安装一整套框架。事实上,这曾是我的模组套件仍然需要CET的唯一理由——所以,我编写了这个插件。
RedLogger是一个轻量级的RED4ext插件,它为每个模组提供自己独立的日志文件。每个模组只需一次调用即可写入,每次游戏会话都会生成新文件,旧会话日志会自动清理,确保文件夹不会因日积月累而泛滥成灾。
简而言之——每个模组都拥有自己整洁的日志,无需CET!(ノ◕ヮ◕)ノ
- 面向玩家 -
无需任何配置。使用RedLogger的模组会将其日志写入到:
Cyberpunk 2077\r6\logs\mods\<ModName>__<date_time>.log
每个游戏会话,每个模组一个文件,每个模组最多保留五个历史会话,最旧的会自动清理。纯文本格式——可使用任意程序打开。
更棒的是:如果你安装了我的 Redscript Configuration Framework v2.0.0+,你甚至无需离开游戏。配置器中心会出现一个 日志 按钮,以游戏内渲染的方式显示每个模组的日志:每个模组一个分区,使用 上一页 和 下一页 按钮翻页查看历史会话,并有 搜索 功能,可高亮匹配项并跳转到第一处匹配。
而且,查看器不仅限于RedLogger自己的文件。通过 来源 按钮,可以循环切换模组栈写入的所有日志目录——RedScript(r6\logs\mods)、RED4ext(red4ext\logs)、框架(Codeware、TweakXL、ArchiveXL等)、CET(其自身的gamelog和脚本日志)以及 CET模组(每个CET模组的文件夹)——模组列表会随之联动。
- 面向模组作者 -
一次调用,无需设置,无需文件处理:
import RedLogger.* RedLog.Append("MyMod", "发生了一些事: " + IntToString(count));
会话的首次 Append 调用会创建该模组的会话文件;之后的每次调用都会写入该文件。完整的原生接口:
RedLog.Append(mod, line) // 向模组会话文件写入一行 RedLog.AppendLevel(mod, level, line) // 带级别标签的行:INFO / WARN / ERROR / DEBUG RedLog.Mods() // -> array<String>,磁盘上所有存在日志的模组 RedLog.Files(mod) // -> array<String>,该模组的日志文件,最新的在前 RedLog.ReadFile(mod, file, maxLines) // -> array<String>,读取日志内容 // 1.3.0+:浏览其他日志目录(只读)。source: 0 RedScript, // 1 RED4ext, 2 框架 (red4ext\plugins), 3 CET, 4 CET模组 RedLog.ModsIn(source) // -> array<String>,该来源中的模组名 RedLog.FilesIn(source, mod) // -> array<String>,最新的在前 RedLog.ReadFileIn(source, mod, file, maxLines) // -> array<String>
级别标签会写入日志行中(格式:"[12:34:56.789] [WARN] message"),游戏内查看器会为它们着色:错误为红色,警告为琥珀色,调试信息为暗色,信息和未标记行为普通颜色。未知的级别字符串会规范化为INFO("WARNING"会接受为WARN),因此拼写错误绝不会导致标签被静默丢弃。
如果你不想硬依赖此插件,可以用ModuleExists("RedLogger")保护你的调用——或者,如果你的模组已经使用了我的 Redscript Configuration Framework,直接调用其内置的门面方法并忘记保护即可;当插件不存在时,它会干净地无操作:
RedLogger.Log("MyMod", "一行日志"); RedLogger.LogInfo("MyMod", "带标签的行"); RedLogger.LogWarn("MyMod", "看起来有问题"); RedLogger.LogError("MyMod", "出错了"); RedLogger.LogDebug("MyMod", "细节信息,查看器中显示为暗色");
- 更新日志 -
1.3.0 - 日志来源:游戏内查看器(需要Redscript Configuration Framework 2.1.0+)现在可以通过新的“来源”按钮,浏览模组栈写入的所有日志目录——RedScript、RED4ext、框架(Codeware/TweakXL/ArchiveXL)、CET以及CET模组。新增了只读的原生接口 ModsIn / FilesIn / ReadFileIn 作为支持。r6\logs\mods之外的所有内容严格为只读;清理功能仍然只会处理RedLogger自己的文件。
1.2.0 - 日志级别:新的AppendLevel原生接口(INFO / WARN / ERROR / DEBUG)会将级别标签写入日志行,游戏内查看器(需要Redscript Configuration Framework 2.1.0+)会为它们着色——错误为红色,警告为琥珀色,调试信息为青色。普通的Append保持不变。
1.1.0 - 首次公开版本。实现按模组、按会话的日志文件,自动清理,以及支持游戏内查看器的回读原生接口。
- 运行需求 -
此模组需要你安装以下前置:
可选:
- Redscript Configuration Framework - v2.0.0+(用于游戏内日志查看器)
- 安装方法 -
- 安装所有依赖项。
- 将下载的文件解压到你的游戏主目录。
- 卸载方法 -
- 删除目录
\Cyberpunk 2077\red4ext\plugins\RedLogger - 删除目录
\Cyberpunk 2077\r6\scripts\RedLogger - 删除目录
\Cyberpunk 2077\r6\logs\mods(如果你也想删除日志文件本身)
此模组不会在你的存档中写入任何数据,因此可以随时安全移除。
- 致谢 -
感谢RED4ext和redscript社区提供的工具和文档。
DigitalVixen 模组套件的一部分。
你现在也可以在Discord上找到我:[点击这里!](https://discord.gg/TRuuDSrGWJ)
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。