可以通过动作详细信息来快速调试动作。打印动作详细信息的方法如下。
如上图,如果在模型断点里选择了trace,那么执行到该断点时则该动作及动作调用的子动作等的执行详细信息会被打印出来。
如上图,也可以在动作模型中使用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);
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 版权所有