Debug logging in JSS apps
Sitecore JSS NPM packages and samples use the debug module for printing out debugging information.
The module exposes the debug()
function, an augmented version of console.log()
statements. Unlike console.log
, you do not have to comment or remove debug()
calls in production code, which means, when necessary, you can easily enable debug logs in production using environment variables.
All Sitecore JSS logs are organized under the root namespace sitecore-jss
. Logging is turned off by default and can be conditionally turned on using the DEBUG
environment variable.
The debug logs only include server-side code, so there is no benefit to enabling debug logging in the browser.
To output all debug logs available, set the DEBUG
environment variable to sitecore-jss:*
. The asterisk (*) is used as a wildcard.
DEBUG=sitecore-jss:*
You can be selective and show only a specific category of log messages, for example, layout service logs.
DEBUG=sitecore-jss:layout
Alternatively, you can show all but layout service logs by using the -
prefix:
DEBUG=sitecore-jss:*,-sitecore-jss:layout
Namespaces
The following table lists all the available namespaces, along with the applicable Sitecore JSS npm packages and sample applications.
Namespace |
Package(s) / sample app(s) |
Description |
---|---|---|
|
|
HTTP request and response logging for default fetch wrappers ( |
|
|
Trace logging for dictionary service implementations ( |
|
|
Trace logging for layout service implementations ( |
|
|
Trace logging for Next.js middleware for Sitecore editor integration. |
|
|
Trace logging for Next.js Personalize middleware ( |
|
|
Trace logging for Next.js GraphQL sitemap service ( |
|
|
Trace logging for Next.js Headless SXA robots.txt service ( |
|
|
Trace logging for Next.js Headless SXA redirects middleware ( |
|
|
Trace logging for Next.js Headless SXA error pages service ( |
|
|
Trace logging for GraphQL site info service ( |
|
|
Miscellaneous logging in application templates. |
Advanced options
When running through Node.js, you can set a few additional environment variables that change the behavior of the debug logging by using the following environment variables:
Name |
Description |
---|---|
|
Enables/disables specific debugging namespaces. |
|
Hide date from debug output (non-TTY). Default: |
|
Whether to use colors in the debug output. Default: |
|
Object inspection depth. Default: 2 |
|
Pretty-print inspected objects on multiple lines. Default: |
|
Shows hidden properties on inspected objects. Default: |