Script Debugger and Session Log
Summarize
Summary of Script Debugger and Session Log
The Script Debugger in ServiceNow Yokohama release enables users with thescriptdebuggerrole to debug server-side JavaScript interactively. Meanwhile, users with thelogdebuggerrole can view and download session logs. These tools provide detailed control over script execution and logging, facilitating efficient debugging of business rules, script includes, UI actions, and other server-side scripts.
Show less
Key Features
- Script Debugger Capabilities:
- Dedicated debug transactions limited to the current session.
- Set, remove, and manage breakpoints and conditional breakpoints.
- Pause execution at breakpoints and step through code line-by-line, including stepping into/out of functions.
- Evaluate expressions and modify variables during runtime using the Console.
- View call stacks, local/global variables, private variables from closures, and transaction details.
- Support for multiple developers debugging their own transactions simultaneously without interference.
- Impersonation support allows debugging as another user if appropriate roles and permissions are present.
- Integration with domain separation to control data and access boundaries during debugging.
- Session Log Capabilities:
- Users with logdebugger role can access session logs for business rules, script includes, and UI components like ServiceNow Agent Workspace.
- Logs can be viewed in a separate tab and downloaded as needed.
- Configurable limits on the number of transactions and messages shown, with defaults at 100 transactions and 10,000 messages.
- Options to specify debug output visibility via the glide.debugger.log.ui system property.
- Additional Functionalities:
- Script execution pauses only on interactive transactions where
GlideSystem.isInteractive()returns true. - Console caches executed statements per browser session, configurable via user preferences, enhancing debugging efficiency.
- Script Tracer helps filter and identify changed script lines during execution, improving problem isolation.
- Scripts run in interpreted mode; scripts in strict mode are not supported by the debugger.
- Script execution pauses only on interactive transactions where
Practical Usage and Configuration
- Launch the Script Debugger from the application navigator, Studio, or syntax editor for immediate debugging.
- Use breakpoints and logpoints to control script execution flow and console output.
- Configure user preferences such as glide.debugger.log.transaction.count and glide.debugger.logmessageslimit to adjust logging thresholds.
- Enable or customize the Session Log tab display via the glide.debugger.log.ui system property to suit your interface preferences.
- Note that Scripts - Background module does not support direct breakpoint setting but allows debugging of invoked script objects.
Benefits for ServiceNow Customers
These debugging tools empower developers to efficiently troubleshoot and optimize server-side scripts by providing granular control over script execution and comprehensive logging capabilities. This leads to faster issue resolution, improved script quality, and enhanced productivity in maintaining ServiceNow applications.
The Script Debugger enables users with the script_debugger role to debug server-side JavaScript. Users with the log_debugger role can use the Session Log to view and download required logs.
- Have a dedicated debug transaction, which applies only to the current session.
- Set and remove breakpoints.
- Pause the current session at a breakpoint.
- Evaluate expressions during runtime.
- Step through code line-by-line.
- Step into and out of function and method calls.
- View the value of local and global variables.
- View the value of private variables from function closures.
- View the call stack.
- View the transaction that the system is processing.
- Turn off the script debugger to resume running paused scripts.
- View session logs in a separate tab.
- Download a log.
- View logs for Agent Workspace.
- Specify debug options to view or download only the required logs.
- The Page option displays logs under forms and lists and on the Session Log tab.
- The Session option displays logs only on the Session Log tab.
For more information about the glide.debugger.log.ui system property, see Available system properties.
When you execute a statement in the Console, the executed statement is stored in the browser cache. You can use the up arrow key to get the previous statement and down arrow key to get the next statement from the browser cache. The user preference setting, glide.debugger.console.cached_stmt_limit, defines the number of statements cached in a browser session. The default statement cache value is 20 and the maximum value is 100. You can configure the statement cache value from user preferences.
- when a business rule runs a script include on a form submit that is an interactive transaction waiting on the form data to change before continuing.
- when a scheduled job runs the same script include that is a non-interactive background transaction that can also run other scripts simultaneously.
To debug client-side scripts, you can use browser-based developers tools.
A debugger transaction remains open as long as the user session is valid. If a user logs out or their session times out, the system closes the debugger transaction.
To view debug logs, see Display debugging logs.