我可以 return 标记和例程名称吗?
Can I return the tag and routine name?
我正在研究一个代码 "maintenance" 想法,我想在例程被访问时填充全局变量以及由谁访问。我可以使用 $t(+0) 或 $ZNAME 提取当前例程名称,但是当前标记 and/or 行偏移量呢?有什么方法可以让我在要跟踪的例程中加入标准行吗?
抢!
也许你只是打开审计?它在 InterSystems Caché 数据库中收集不同用户活动的日志。见 documentation on Caché Audit.
此外,see this solution 这将帮助您检查 DeepSee 中有关审计条目的分析。
Rob,你可以从 $STACK 获取这些信息。
如果您调用自己的跟踪函数,您将获得如下调用堆栈信息:
W $STACK($STACK(-1)-1,"PLACE")
zExecute+2^%Studio.General.1 +1
查看 $STACK 的 Caché ObjectScript 参考以获取详细说明和示例。
您可以通过以下 ClassMethod 找到调用您的标签的例程。
write ##class(%SYSTEM.Process).CallingRoutine()
以及调用您的标签的数据库。
write ##class(%SYSTEM.Process).CallingDatabase()
我正在研究一个代码 "maintenance" 想法,我想在例程被访问时填充全局变量以及由谁访问。我可以使用 $t(+0) 或 $ZNAME 提取当前例程名称,但是当前标记 and/or 行偏移量呢?有什么方法可以让我在要跟踪的例程中加入标准行吗?
抢! 也许你只是打开审计?它在 InterSystems Caché 数据库中收集不同用户活动的日志。见 documentation on Caché Audit.
此外,see this solution 这将帮助您检查 DeepSee 中有关审计条目的分析。
Rob,你可以从 $STACK 获取这些信息。
如果您调用自己的跟踪函数,您将获得如下调用堆栈信息:
W $STACK($STACK(-1)-1,"PLACE")
zExecute+2^%Studio.General.1 +1
查看 $STACK 的 Caché ObjectScript 参考以获取详细说明和示例。
您可以通过以下 ClassMethod 找到调用您的标签的例程。
write ##class(%SYSTEM.Process).CallingRoutine()
以及调用您的标签的数据库。
write ##class(%SYSTEM.Process).CallingDatabase()