首页 > 解决方案 > 在挂毯中记录事件调用

问题描述

我想记录所有事件调用。例如,如果用户单击ActionLink我想获取事件Action刚刚发生的信息。

在有关日志记录的文档中指出这是可能的,但我不太明白如何做到这一点。它说:

Tapestry 还可以调试组件事件逻辑。组件的记录器,带有“tapestry.events”。前缀,用于调试级别。调试输出标识事件名称和事件源,并标识调用的任何方法。

请注意,组件未处理的事件将冒泡到组件的容器中;将使用与容器关联的记录器对同一事件进行进一步的记录。包含初始组件的页面是记录时的最后一步。

这不是一个真正的指令。我尝试了与此类似的方法,但找不到启用记录器的事件记录属性的方法。目前我只将我的记录器设置为调试级别,如下所示:

org.apache.log4j.Logger.getRootLogger().setLevel(Level.DEBUG);   
org.apache.log4j.Logger.getLogger("de.[...].Edit").setLevel(Level.DEBUG);

但这似乎只启用了调试级别,并且事件仍未跟踪。

另请注意,由于某种原因,我目前找不到我的log4j.properties(log4j 不会抱怨它,所以它可能确实存在于某处)文件,因此不需要此文件的解决方案会很好。如果那不可能,那也不是问题,我只需创建一个新的属性文件或类似的东西。

标签: javaeventsloggingtapestry

解决方案


实际上,我只需要正确阅读文档即可。事件记录器的接收方式如下:

org.apache.log4j.Logger eventLogger = org.apache.log4j.Logger.getLogger("tapestry.events.de.[...].Edit");

然后可以将其设置为类似于普通记录器的调试:

eventLogger.setLevel(Level.DEBUG);

推荐阅读