The quick answer
console.debug() writes to the browser Console at Verbose level. When a record-level Client Script runs, its log.debug() output can be written to NetSuite's execution log if the applicable deployment and logging conditions permit it. Check the destination and its display filters separately.
This walkthrough inspects prepared diagnostics: an existing browser message and a separate NetSuite log-row example. It does not save an Employee record or show a Client Script executing. Alex Morgan and Example Supply Co. are fictional example identities.
Before you start
You need access to the relevant Client Script record and execution logs. The example uses Administrator and a prepared record named Client Diagnostic Review. Open Customization → Scripting → Scripts and choose the script you intend to inspect.
Keep its attachment method in mind. This example uses a record-level Client Script deployment. A Client Script attached directly to a custom form has different N/log behavior, covered below.
01. Inspect the script context
The prepared record shows Type = Client and API Version = 2.0. Your script may use 2.0 or 2.1; the example version is not a requirement for these logging destinations. Choose Deployments. The prepared Employee row shows Deployed = Yes, Status = Testing and Log Level = Debug.
Deployment Log Level filters which N/log methods are written to the applicable execution log. log.debug() requires Debug. This setting does not execute the script or control browser output. Check that you're investigating the intended script and deployment before interpreting an entry or an empty list.
02. Check the browser Console
Open your browser's Developer Tools and select Console for the page being diagnosed. That browser-tool launch happens outside the recorded application canvas. The next recorded surface is the browser Console.
The example starts with Default levels. Its existing console.debug() message is hidden, and the toolbar reports 1 hidden. Also check the Console's text filter and JavaScript context when investigating your own page.
03. Include Verbose messages
Open the browser's Log level menu and enable Verbose. In this example, Info, Warnings and Errors were already included, so the toolbar changes to All levels.
The Console now displays Job title diagnostic: 1. Changing this filter revealed an existing message; it did not rerun a Client Script.
04. Inspect the execution log
Return to the Client Diagnostic Review Script record. Choose Execution Log and click Refresh. Leave Type at - All -.
The prepared row has Type = Debug, Title = Job title diagnostic, Details = 1 and User = Alex Morgan. This list includes separate Type, Title, Date, Time, User and Details columns.
The browser message and this prepared NetSuite row illustrate separate destinations. Seeing one does not prove that the other exists in a production account.
05. Filter the displayed entries
Open Type and choose Debug. The same prepared title, details and user remain. This observed view omits the Type column because the selected filter identifies the displayed type.
The prepared inspection is complete when its browser message is visible and its separate existing NetSuite entry can be found. This does not establish that the same Client Script produced both outputs in an account. For a missing entry, check the execution context, deployment threshold, display filters and logging limits separately.
Common questions
Why is my console.debug message missing?
Include Verbose in the browser Console's Log level menu. Check the text filter, JavaScript context or frame, and page being inspected too. Confirm that the intended deployment and entry point were reached. An earlier error may have stopped the code before its logging call.
Does enabling Verbose or clicking Refresh rerun the script?
Enabling Verbose changes browser message visibility. NetSuite's Refresh reloads the execution-log list. Neither action executes the Client Script or saves an Employee record. Changing deployment Log Level does not trigger an entry point either.
Is Execution Log Type the same as deployment Log Level?
Type filters the entries displayed in the log list. Deployment Log Level filters which N/log methods are written to the applicable execution log. Selecting Type Debug does not change that deployment setting or the browser Console's filters.
Why doesn't a custom form's Client Script produce N/log entries?
NetSuite ignores N/log calls from a Client Script attached directly to a custom form. Use browser console output for that form-level context. A client module attached through Form.clientScriptModulePath or Form.clientScriptFileId can associate its logging with the parent server deployment; inspect the parent script or deployment that supplied the attachment.
Where can I find N/log output from a deployed Client Script?
Inspect the script and deployment that ran. This walkthrough uses the Script record's available Execution Log view. The deployment's Execution Log and the broader Script Execution Logs list provide other views, subject to permissions. The SuiteScript Debugger's log is separate. Client Scripts are normally debugged in the browser on the page where they execute.
Why do I see browser output but no NetSuite row?
console.debug() and log.debug() write to different destinations. Check the attachment context, whether the relevant code ran, the applicable deployment threshold and the script or deployment being inspected. A directly attached form-level Client Script ignores N/log. Purged logs and volume controls can also affect availability.
How can I verify that my Client Script ran?
Run a separate controlled test of the relevant form or record action with the browser Console open. Use a distinct diagnostic value and correlate its timestamp, user, script, deployment and execution context. The prepared examples in this guide do not establish that connection or prove a particular entry point ran.
Are execution logs permanent evidence?
Execution logs can be purged, and volume controls can affect availability. They are diagnostic output. Use appropriate application records or another durable mechanism when you need a lasting audit trail. A missing historical row alone does not prove that code never ran.
Sources
- Oracle: N/log guidelines
- Oracle: Form.clientScriptModulePath
- Chrome: Console reference