现在根据服务中的详细级别控制在系统日志中记录哪个脚本

时间:2015-03-26 18:53:20

标签: servicenow

我工作的组织使用服务现在,我刚加入团队,我的团队希望我现在就登录服务做一些研究。

他们想要的是根据脚本的详细程度在服务器上编写脚本时控制脚本的日志记录

我对记录的理解是在服务器上发生的过程类型,即

•如果脚本的语法不正确,则会将其记录为警告,说明日志消息中的编译错误

•如果某些内容成功运行或某个过程已完成,则会将其记录为INFO,并显示发生的消息

•进行类似的调试记录,(尽管我可能错了)

我尝试在服务上搜索wiki,我找到的一种方法是gs.log()

我尝试运行一些测试脚本来记录System Definition > Scripts - Background

中的信息

我试过的各种脚本

var gl = new GSLog("com.snc.sla.tasksla.log", "TaskSLA"); 
gl.logErr("This is an error message");


var gl = new GSLog("com.snc.sla.tasksla.log", "TaskSLA"); 
gl.logWarning("This is a warning message");

gs.info("This is an info log");
gs.debug("This is a debug log");

然后在日志表中搜索系统日志>系统日志>所有

所有看到的是我运行的脚本是以INFO作为整体记录的整体,如果脚本有语法错误,则记录与警告级别相同

为什么不逐行记录脚本?

还有一种方法可以告诉Service现在应该根据详细级别记录哪个脚本?

1 个答案:

答案 0 :(得分:5)

如果您使用富士版本或更新版本(这仍然很新,那么您可能不会这样),实际上是一个全新的日志记录API,它更加直观,并且它是基于应用程序的。以下是该API的文档:

<强>冗长

有4个级别的详细程度,从最简洁到最详细的顺序,它们是:

error (gs.error)
warn (gs.warn)
info (gs.info)
debug (gs.debug)

...这意味着将特定应用的日志级别设置为&#34; info&#34;会给你信息+警告+错误,但不调试。

...会话调试详细程度为debug,因此任何级别的日志详细程度都将包含在会话调试输出中,以便在会话调试激活的会话中调试应用程序。

用于记录详细程度的属性是(替换为您的应用名称):

<APP_NAME>.logging.verbosity // off -> error -> warn -> info -> debug

目标

&#34; db&#34;的日志目的地将日志消息在所需的日志记录详细程度中路由到表&#34; syslog_app_scope&#34;,它扩展了syslog。这个新表添加了用于发布日志的App / Scope的字段以及链接到调用日志API的脚本的源脚本字段(当我们可以解决时,当前仅适用于业务规则和脚本包含)。当Destination设置为&#34; db&#34;时,日志也将转到文件系统。

&#34;文件&#34;的日志目的地将登录到节点的文件系统日志而不向日志监听器广播(Scripts-Background除外)

目的地的属性是:

<APP_NAME>.logging.destination // none -> file -> db (implies file also)

使用示例

此API的消费者(来自JavaScript)应该能够:

gs.debug(message [, parameters]) - 调试级别详细程度的发送日志消息

gs.info(message [, parameters]) - 信息级别详细程度的发送日志消息

gs.warn(message [, parameters]) - 警告级别详细程度的发送日志消息

gs.error(message [, parameters]) - 错误级别详细程度的发送日志消息

此日志记录API支持java MessageFormat占位符替换模式 目前支持最多5&#34; varargs&#34;占位符参数,任何超过5个都需要指定为单个javascript数组参数 所有这些都是合法的电话:

gs.info("Here's a log message from me"); // no params
gs.info("Here's a log message from {0}", myName); // single non array param
gs.info("Here's a log message from {0}.{1}", myFirstName, myLastName); // multiple "varargs" params (up to 5!)
gs.info("Here's a log message from {0}.{1}", [myFirstName, myLastName]); // array of n-number of params (no upper bounds)