类 DebugInOut
java.lang.Object
com.iohao.game.action.skeleton.core.flow.internal.DebugInOut
- 所有已实现的接口:
ActionMethodInOut
业务框架插件 - 控制台输出插件。
DebugInOut 是控制台输出插件,主要关注点
1. 快速导航到请求处理的业务代码中(执行的 action ) 2. 当前发起请求的用户(玩家) 3. 玩家当前所使用的连接方式(webSocket、Tcp、udp) 4. 执行 action 的线程 5. 执行 action 耗时情况 6. 路由、类信息、方法信息等 7. action 接收的请求参数 8. action 响应给玩家的数据(响应结果)日志输出预览
┏━━━━━ Debug. [(ActivityAction.java:1).hello] ━━━━━ [cmd:1-0 65536] ━━━━━ [xxx逻辑服] ━━━━━ [id:76526c134cc88232379167be83e4ddfc] ┣ userId: 1 ┣ 参数: active : Active(id=101, name=塔姆) ┣ 响应: 塔姆, I'm here ┣ 时间: 1 ms (业务方法总耗时) ┗━━━━━ [ioGameVersion] ━━━━━ [线程:User-8-2] ━━━━━━━━━━ [traceId:956230991452569600] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 参数 : 通常是游戏前端传入的值 响应:通常是业务方法返回的值 (游戏后端人员编写的业务) 时间:执行业务方法总耗时 [(ActivityAction.java:1).hello] 表示业务方法是在这个类运行的,其运行的业务方法名是 hello cmd : 表示当前访问的路由 逻辑服 : 当前游戏逻辑服与其 id ioGameVersion : 表示当前使用的 ioGame 版本 traceId : 全链路调用日志跟踪 id,每个请求唯一 有了以上信息,游戏开发者可以很快的定位问题。 控制台会打印方法所在的类,包括方法所在的代码行数。 这样可以使得开发者在开发工具中快速的导航到对应的代码; 这是一个在开发阶段很有用的功能。 如果没有可视化的信息,开发中会浪费很多时间在前后端的沟通上,问题包括:
- 是否传参问题 (游戏前端说传了)
- 是否响应问题(游戏后端说返回了)
- 业务执行时长问题 (游戏前端说没收到响应, 游戏后端说早就响应了)
- 代码导航
see beetlsql DebugInterceptor
- 作者:
- 渔民小镇
- 日期:
- 2021-12-12
-
构造器概要
-
方法概要
-
构造器详细资料
-
DebugInOut
public DebugInOut() -
DebugInOut
public DebugInOut(long time) - 参数:
time
- >= 这个时间才打印
-
-
方法详细资料
-
fuckIn
从接口复制的说明:ActionMethodInOut
fuck前这个方法不要做耗时计算, 因为是在执行你的业务方法前运行的. 建议做一些时间记录等非耗时运算
- 指定者:
fuckIn
在接口中ActionMethodInOut
- 参数:
flowContext
- inout 上下文
-
fuckOut
从接口复制的说明:ActionMethodInOut
fuck后当执行这个方法时, 已经把响应数据发送到客户端了
- 指定者:
fuckOut
在接口中ActionMethodInOut
- 参数:
flowContext
- inout 上下文
-