java.lang.Object
com.iohao.game.action.skeleton.core.flow.internal.DebugInOut
所有已实现的接口:
ActionMethodInOut

public final class DebugInOut extends Object implements 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

      public void fuckIn(FlowContext flowContext)
      从接口复制的说明: ActionMethodInOut
      fuck前
           这个方法不要做耗时计算, 因为是在执行你的业务方法前运行的.
           建议做一些时间记录等非耗时运算
       
      指定者:
      fuckIn 在接口中 ActionMethodInOut
      参数:
      flowContext - inout 上下文
    • fuckOut

      public void fuckOut(FlowContext flowContext)
      从接口复制的说明: ActionMethodInOut
      fuck后
           当执行这个方法时, 已经把响应数据发送到客户端了
       
      指定者:
      fuckOut 在接口中 ActionMethodInOut
      参数:
      flowContext - inout 上下文