java - 在挂毯中记录事件调用
问题描述
我想记录所有事件调用。例如,如果用户单击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 不会抱怨它,所以它可能确实存在于某处)文件,因此不需要此文件的解决方案会很好。如果那不可能,那也不是问题,我只需创建一个新的属性文件或类似的东西。
解决方案
实际上,我只需要正确阅读文档即可。事件记录器的接收方式如下:
org.apache.log4j.Logger eventLogger = org.apache.log4j.Logger.getLogger("tapestry.events.de.[...].Edit");
然后可以将其设置为类似于普通记录器的调试:
eventLogger.setLevel(Level.DEBUG);
推荐阅读
- c - 多个 scanf() 用于获取字符串和整数。其中一些被忽视
- python - 使用 Python 和 Selenium 控制 Web 浏览器“消息:没有这样的元素:无法找到元素”(python)
- windows - LNK1112:模块机器类型“X86”与目标机器类型“x64”冲突 Visual Studio 命令提示错误
- java - 无法设置此响应实体方法
- flutter - 在 _CustomTabViewState 中找不到路由 RouteSettings("chat", null) 的生成器
- node.js - 如何使用 Sequelize 实现 Node.JS 模型
- postgresql - Postgresql:单独 UPSERT 的效率(INSERT INTO ... ON CONFLICT)与组合成单个命令
- sql - 在 BigQuery 中拆分并重新加入部分字符串
- python - 每当用户输入特定事物时从列表中删除值
- github - 使用管道作为代码时,在 Jenkins 声明性管道中从 Git 中提取分支名称