在Wicket中记录用户操作

时间:2012-12-30 21:17:47

标签: logging user-interface wicket event-sourcing

我正在试验Wicket和事件采购。我正在尝试记录用户操作,因此我们可以重放它们或将它们用于测试或演示目的。

你会推荐什么策略?

例如,我可以定义动作类并将它们放在onsubmit等中。或者覆盖wicket的所有“动作”组件,例如链接,按钮,文本字段。等

有什么好建议吗?

4 个答案:

答案 0 :(得分:4)

警告:这是解决此问题的 NOT 可能仅适用于ajax,但我也不确定。

您可以使用IComponentInstantiationListener检查创建的新组件以及是否可点击。然后你可以附加一个Logging-Behavior。通过这种方式,您可以轻松地在一个位置打开和关闭日志记录,而不必将每个Link-,Button和Whatnot-class子类化以进行日志记录。

答案 1 :(得分:2)

从1.2开始就使用随Wicket提供的request logger(尽管多年来它的实施发生了很大变化)。这会将请求目标和响应记录在(在6.0中,参见wicket-extensions)JSON格式中以进行解析。请注意,根据用户数量,这可能会生成难以处理的日志。

答案 2 :(得分:1)

Wicket本身并没有为这样的东西提供钩子,但是根据你使用的其他技术,你可以在持久性层中做到这一点 - 例如与JPA的@PreRemove,@ PreUpdate,@ PrePersist。 另一种方法是面向方面编程(AOP)。

答案 3 :(得分:0)

考虑到每个用户操作都是http请求ajax或classic,您可以使用您需要的某些标识符记录每个请求(每个请求都有一个组件路径)。在Wicket 1.4中,您可以延长请求周期,在1.5+中添加一个请求周期监听器。

请参阅https://cwiki.apache.org/WICKET/requestcycle-in-wicket-15.html