This document might be outdated relative to the documentation in English. For the latest updates, please refer to the documentation in English.

✖

Debugging Express

Express uses the debug module
internally to log information about route matches, middleware in use, application mode,
and the flow of the request-response cycle.

debug is like an augmented version of console.log. But unlike console.log, you don’t have to
comment out debug logs in production code. It is turned off by default and can be conditionally turned on with the use an environment variable named DEBUG.

To see all the internal logs used in Express, simply set the DEBUG environment variable to
express:* when launching your app.

$ DEBUG=express:* node index.js

On Windows, use the corresponding command.

> set DEBUG=express:* & node index.js

Running this on the default app generated by the express generator would print the following.

To see the logs only from the router implementation set the value of `DEBUG` to `express:router`. Likewise, to see logs only from the application implementation set the value of `DEBUG` to `express:application`, and so on.
## `express`-generated app
The app generated by the `express` command also uses the `debug` module and its debug namespace is scoped to the name of the application.
If you generated the app with

$ express sample-app

You can enable the debug statements with the following command

$ DEBUG=sample-app:* node ./bin/www

You can specify more than one debug namespace by assignning a comma separated list of names, as shown below.

$ DEBUG=http,mail,express:* node index.js

For more documentation on `debug`, see the [debug guide](https://github.com/visionmedia/debug).