Skip to end of metadata
Go to start of metadata

The syntax of an explicit logging statement is:

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 places the log message in two places:

  • The log message is placed in the console log 
  • The log message is shown in the "Logging" tab of the UI if enabled 

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

fired { log debug "query:"+query } 

The following would only log with an empty query:

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. 

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.

See Debugging KRL for more information on debugging tools. 

  • No labels