服务端日志与异常排查:启动失败、数据库报错、脚本错误分别看哪个日志、怎么快速定位
虾米小编 12小时前

先记住顺序:谁先启动,谁先写日志

传奇服务端的启动顺序基本固定:数据库服务 → 登录服务 → 网关 → 主引擎(M2)。日志也是按这个顺序产生,所以排查第一步不是乱翻日志,而是看哪一步没起来。

启动顺序进程/程序失败时的典型现象
1数据库(MySQL / DBC2000)M2 打不开、提示连接数据库失败
2登录服务 LoginSrv登录器显示服务器未开放
3网关 RunGate能登录但进不去、卡在连接
4主引擎 M2Server窗口一闪而过、脚本报错停住

日志在哪、看哪个

  • 主引擎目录下一般有 Log 或 LogData 文件夹,M2 的启动日志、脚本错误、刷怪报错都在这里;
  • 网关日志在网关目录,记录连接、断开、封包异常;
  • 登录服务日志记录账号登录、密码错误、IP 限制;
  • 数据库错误不在这些日志里,要去看 MySQL 的 error log 或服务端自己的 db 错误输出。

小技巧:用 Notepad++ 打开日志后按 Ctrl+F 搜关键字(ERROR、失败、异常、找不到、超时),比从第一行读快得多。

常见报错对照

报错/现象大概率原因处理方向
端口被占用 / bind 失败上次进程没退干净任务管理器结束残留进程,或换端口
无法连接数据库数据库没启动、账号密码错、库名错先用客户端连一次库验证
脚本错误 + 行号脚本语法或命令不存在按行号打开脚本,检查命令拼写和参数个数
怪物不刷新MonGen 配置、地图编号错核对地图编号和刷怪文件
登录器连不上列表 IP/端口、网关未启动按登录器排查顺序走

一套固定的排查流程

  1. 确认端口在监听:命令行执行 netstat -ano | findstr 端口号,有 LISTENING 才算起来了;
  2. 看最后一个启动失败的程序的日志,从最后 20 行往前读;
  3. 把报错原文(不要只截一半)贴出来搜,很多报错是引擎通用提示;
  4. 单点验证:数据库用客户端连、端口用 telnet 试、登录器单独配一个列表测;
  5. 每次只改一处,改完重启再验证,别一次改五个地方。

最容易忽略的两件事

  • 日志文件可能因为权限写不进去,看起来“没报错”,其实根本没记录;
  • 服务端目录路径带中文或空格,某些老引擎会直接读不到配置。

相关阅读

下一篇

下一篇写「旧安卓手机再利用」:当下载机、监控屏、电视盒子的具体配置和耗电情况。

最新回复 (0)
返回