Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Note where log statement can go

The syntax of an explicit logging expression is:

Code Block
languagejavascript
themeConfluence
<expr>.klog(<message>)

where <expr> is any valid KRL expression. The expression is returned, and something like the following is added to the console log (and the "Logging" tab of the UI if enabled):

Code Block
languagejavascript
themeConfluence
[KLOG] <message> <expr converted to a string>


The syntax of an explicit logging statement in the postlude is:

Code Block
languagejavascript
themeConfluence
log <level> <expr>

...

 

where <level> is one of info, warn, error, or debug; and <expr> is any valid KRL expression that results in a string (or something that can be cast as a string such as a number). Explicit logging statements also place the log message in the console log, and the "Logging" tab of the UI if enabled.

The following example would place a string with the value of a variable named query in named query in the log if the rule fired:

Code Block
languagejavascript
themeConfluence
fired { log debug "query:"+query } 

The following would only log with an empty query:

Code Block
languagejavascript
themeConfluence
fired { log debug "Empty query" if(query like "^$") }

The following rule is selected when an http:post() event is seen with a status code indicating an error. The error is logged and then processing is stopped. 

Code Block
languagejavascript
themeConfluence
rule r3 is active {

...


  select when http post label re#ex# status_code re#([45]\d\d)#

...

 setting (status)

...


  noop();
  fired {
    log error <<Error: #{status}: #{event:attr("status_line")}>>

...


    last;

...


  }
}

...

 

Another approach to logging would use explicit error handling.