java netty 集群游戏服务器框架 ioGame 17.1.28
增加版本标识
增加版本标识,并在 DebugInOut 插件中显示的打印。
┏━━━━━ Debug. [(HelloAction.java:88).world] ━━━ [cmd:1 - subCmd:7 - cmdMerge:65543] ━━━ [逻辑服 [hello 游戏逻辑服] - id:[fc3348f8-4881-49e4-b94d-8cd99ab543cf]]
┣ userId: 0
┣ 参数: helloReq : HelloReq(name=112)
┣ 响应: HelloReq(name=死亡阴影3)
┣ 时间: 0 ms (业务方法总耗时)
┗━━━━━ Debug [HelloAction.java - ioGame:17.1.28] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
业务框架处理器
增加 ActionCommandTryHandler 并作为默认的业务框架处理器。
业务框架默认是在 bolt 线程运行,如果有异常会被 bolt 捕获到日志文件中。由于控制台没有显示的打印异常信息,开发者如果对 bolt 不熟悉,是不知道有该日志文件的。当出现异常时,将会浪费开发人员的时间来排查问题,为了避免这种情况,业务框架先做捕获,并打印到控制台中,在向上抛 ex。
bolt 日志文件相关 https://www.yuque.com/iohao/game/derl0laiu2v0k104#likQv
final class ActionCommandTryHandler extends ActionCommandHandler {
@Override
public boolean handler(final FlowContext flowContext) {
/*
* 业务框架默认是在 bolt 线程运行,如果有异常会被 bolt 捕获到日志文件中,
* https://www.yuque.com/iohao/game/derl0laiu2v0k104#likQv
*
* 由于没有打印到控制台,开发者如果对 bolt 不熟悉,是不会看日志文件,或者说不知道有该日志文件。
* 为了避免这种情况,业务框架先做捕获并打印,在向上抛 ex
*
*/
try {
return super.handler(flowContext);
} catch (Throwable e) {
log.error(e.getMessage(), e);
throw e;
}
}
}