此应用的 C++ 源代码已在以下 GitHub 仓库中开源,不对编译完成的程序公开,读者可自行编译。
想不出更短的标题了。
此应用的作用
当 MC 管理员使用自己的物理主机线下搭建服务器时,无需长时间关注服务器日志,并可将服务器控制台放在后台。此应用可以独立自动化读取服务器日志,并在触发某些关键词时发出提示音,引起管理员注意以防止其错过重要信息,且它可随时关闭不影响服务器正常运行。
NOTE我在全网目前并未搜索到有如此简单的具有类似效果的应用。
一些过程及思路
这玩意老早之前就想搞了,之前用自己的笔记本当服务器,然后内网穿透给朋友玩,挂在后台的时候老是错过朋友上线。但是苦于没太多时间搞这个,就没弄成。现在时间多了,可算搞出来了。
一开始思路不太对,本来想直接读取服务器控制台里的东西,然后进行查询关键词,但是好像跨进程读控制台 Windows 貌似行不通。但好像也能实现,但是很复杂,资料翻了半天,问了 AI,搞了两个晚上还是没搞定。
后来发现,你们麻将叔叔直接给控制台的内容同步到 logs/latest.log 下面了。那就好办了,直接读 latest.log 就行了。
但是还是有些小细节需要注意:
-
每次都全部读一遍太浪费内存以及时间了,当然是不可行的。由于考虑到我们只需要对新出现的内容进行关键词匹配即可,故我们可以每次只读取文件最后一段内容*,然后对上一次读取的结果进行匹配。
具体地,即找到当前最长的一段前缀和上一次的后缀完全匹配时,当前剩余的内容即为新增加的内容。
* (此长度需与你的服务器日志产出速度匹配。当日志产出速度大时,长度需更长,小时,可以更短。若过于短,则可能导致错过关键词)
-
由于我们每次都是判断的增量,故我们可能出现多个关键词同时出现。为了防止提示音相互截断,故可以设计提示音队列,有需要时加入队列而不立即播放,到最后统一先进先出地播放。
使用方法&常见问题
使用方法
运行程序
- 编译我的 C++ 源代码。(具体编译器版本不太清楚,但是我的环境是 Visual Studio 2022)
- 打开你的电脑声音。
- 在运行服务器之前运行此程序。
修改提示音以及修改提示词
我觉得我的代码写的非常优雅且易读,很好改,自己动一下脑子就行了。
实在不会问 AI。
常见问题
没声音
原因
CAUTION你电脑声音开没开?耳机连上吗?重启过了吗?
我的代码中使用的是 Windows 自带的系统提示音,Windows11 环境下不会有问题。很大概率是因为你的电脑系统版本太低或者不是 Windows 操作系统。
还有一种可能是不知道何种原因,此程序刚启动的时候会卡一会,此时间区间内无法发出声音,尚未找到解决方案。
解决方案
- 装 Win11。
- 根据使用方法中的 修改提示音以及修改提示词 内容对声音进行修改。
- 给你电脑声音开开。