打印动作详细信息

    可以通过动作详细信息来快速调试动作。打印动作详细信息的方法如下。

1.在断点里使用trace

    如上图,如果在模型断点里选择了trace,那么执行到该断点时则该动作及动作调用的子动作等的执行详细信息会被打印出来。

2.使用DebugContext

    如上图,也可以在动作模型中使用DebugContext,设置后该动作及其子动作的详细信息都会被打印出来。

3.在代码中使用DebugContext

    在代码中可以手动控制是否要打印动作执行的详细信息,方法是在变量栈中设置DebugContext,如下面的代码。

import org.xmeta.Thing;
import org.xmeta.ActionContext;

//在变量上下文中的栈层中指定上下文事物为DebugContext
def ac = new ActionContext();
ac.peek().setContextThing(new Thing("xworker.lang.context.DebugContext"));

//使用具有DebugContext的变量上下文执行动作
def action = world.getAction("_local.test.core.actions.context.TestDebugContext/@Begin");
action.run(ac);

4.动作详细信息示例

2017-03-08 10:42:02,890  INFO (xworker.lang.context.DebugContext:47) -   Begin, starting: _local.test.core.actions.context.TestDebugContext/@Begin
2017-03-08 10:42:02,891  INFO (xworker.lang.context.DebugContext:47) -     run, starting: xworker.lang.actions.Begin/@actions1/@run
2017-03-08 10:42:02,892  INFO (xworker.lang.context.DebugContext:47) -       createName, starting: _local.test.core.actions.context.TestDebugContext/@Begin/@actions/@createName
2017-03-08 10:42:02,892  INFO (xworker.lang.context.DebugContext:47) -         run, starting: xworker.lang.actions.ValueFactory/@actions/@run
2017-03-08 10:42:02,892  INFO (xworker.lang.context.DebugContext:63) -         run, finished, time: 0, return: XWorker
2017-03-08 10:42:02,893  INFO (xworker.lang.context.DebugContext:63) -       createName, finished, time: 1, return: XWorker
2017-03-08 10:42:02,894  INFO (xworker.lang.context.DebugContext:47) -       Println, starting: _local.test.core.actions.context.TestDebugContext/@Begin/@actions/@Println
2017-03-08 10:42:02,894  INFO (xworker.lang.context.DebugContext:47) -         run, starting: xworker.lang.actions.log.PrintActions/@Println/@actions/@run
2017-03-08 10:42:02,894  INFO (xworker.lang.context.DebugContext:47) -           getVar, starting: xworker.lang.actions.log.PrintActions/@Println/@actions/@getVar
2017-03-08 10:42:02,895  INFO (xworker.lang.context.DebugContext:47) -             run, starting: xworker.lang.actions.ActionUtil/@GetData/@actions/@run
2017-03-08 10:42:02,896  INFO (xworker.lang.context.DebugContext:63) -             run, finished, time: 1, return: XWorker
2017-03-08 10:42:02,896  INFO (xworker.lang.context.DebugContext:63) -           getVar, finished, time: 2, return: XWorker
2017-03-08 10:42:02,897  INFO (xworker.lang.context.DebugContext:47) -           getMessage, starting: xworker.lang.actions.log.PrintActions/@Println/@actions/@getMessage
2017-03-08 10:42:02,897  INFO (xworker.lang.context.DebugContext:47) -             run, starting: xworker.lang.actions.ActionUtil/@GetString/@actions/@run
2017-03-08 10:42:02,897  INFO (xworker.lang.context.DebugContext:63) -             run, finished, time: 0, return: null
2017-03-08 10:42:02,898  INFO (xworker.lang.context.DebugContext:63) -           getMessage, finished, time: 1, return: null
XWorker
2017-03-08 10:42:02,898  INFO (xworker.lang.context.DebugContext:63) -         run, finished, time: 4, return: null
2017-03-08 10:42:02,899  INFO (xworker.lang.context.DebugContext:63) -       Println, finished, time: 5, return: null
2017-03-08 10:42:02,899  INFO (xworker.lang.context.DebugContext:63) -     run, finished, time: 8, return: null
2017-03-08 10:42:02,899  INFO (xworker.lang.context.DebugContext:63) -   Begin, finished, time: 9, return: null

 

 

Copyright ©  2007-2014 XWorker.org  版权所有

沪ICP备08000575号