第四十二章 构建数据库应用程序 - 在ISCLOG中启用日志

45 阅读3分钟

本文正在参加「金石计划 . 瓜分6万现金大奖」

第四十二章 构建数据库应用程序 - 在ISCLOG中启用日志

要解决CSP问题,请通过在终端中输入以下命令来启用Caché的日志记录:

 Set ^%ISCLOG = 2

可以在^ISCLOG全局数据库中查看日志记录信息。它在Caché中记录事件,以供调试使用。作为参考,日志级别如下:

  • 0 — Caché不执行日志记录。
  • 1 - Caché仅记录异常事件(如错误消息)。
  • 2 — Caché记录详细信息,例如用参数XYZ调用的方法ABC,返回1234
  • 3 - Caché记录原始信息,如从HTTP请求接收的数据。

可以使用以下任一选项关闭缓存记录

 Set ^%ISCLOG = 0
 Kill ^%ISCLOG

ISCLOG中,一些条目与事件日志头字段匹配,如下所示:

ISCLOGEvent Log
JobCache-PID
SessionIdSession-ID
TagRequest-ID

下表显示了ISCLOG中的字段和定义。

ISCLOG Fields

FieldDefinition
%categoryCSPServer: Logged from cspServer, cspServer2, %request, %response.
CSPSessionLogged来自%session以及处理会话的cspServercspServer2的一部分。这允许观察会话的生命周期。
CSPLicenseLogged来自cspServercspServer2中处理许可的部分。
Gateway RequestLogged来自GatewayMgrGatewayRegistryGateway请求处理程序以及cspServer2中处理网关请求的部分。
%level 1=异常和错误
2 = CSPSession信息。CSPLicense信息。来自cspServer的信息:设置了%response%session%request之后的请求处理部分。这包括身份验证、许可证处理、重定向和调用CSPpage
3=来自cspServer2的信息:处理请求的部分,它建立了%response%session%request,和CSP网关握手/数据传输。
%job发出ISCLOG请求时$job的值。匹配事件日志头中的Cache-PID字段。%sessionid可用时输入。sessionid在发出ISCLOG请求时的值。匹配事件日志头中的Session-ID字段。
%tag对于CSP服务器,标记包含来自网关的请求id(当可用时)。这与来自Event Log头的Request-ID字段匹配。其他记录器可以将此值设置为任何值。可供ISCLOG条目的创建者使用。存储CSP网关发送给它的请求的ID。它可以用作ISCLOG条目生成的过滤器。Set ^%ISCLOG("Tag","mytagvalue1")=1 Set ^%ISCLOG("Tag","mytagvalue2")=1 只有不带标记或带有“mytagvalue1”“mytagvalue2”标记的ISCLOG请求才会被记录。
%routine当前正在执行的例程的名称。
%message参见下面的消息格式格式。

消息格式

消息以当前正在执行的标记标签或方法的名称开始。 这个名字用方括号括起来。 [MyMethod]其余的消息。

CSPSession类别中的消息在方法名后面也有CSPSession- id =sessid。 这是必需的,因为会话事件可以在会话创建之前或在会话被销毁之后被记录,这意味着ISCLOG条目中的SessionId字段为空。

[MyMethod] CSPSession-Id: 12ty34ui22

GatewayRegistry类别中的消息在方法名后面也有CSPID= CSPID(如果可用)。 这允许通过网关请求处理程序从API调用跟踪单个网关请求。

 [MyMethod]CSPID:334r43345 rest of message