oik-bwtrace | bobbingwide


Debug trace for WordPress, including ad hoc action hook and filter tracing.

  • The primary purpose of debug trace is to help in the development of PHP code: plugins or themes.
  • The primary purpose of action trace is to help you understand the sequence of events in the server.
  • The primary purpose of ad hoc tracing is to let you see what’s happening without changing any code.
  • The primary purpose of ‘string watch’ is to track the source of some output.
  • This plugin provides the admin interface to trace functions and methods and action and filter tracing.

Except for HTML comments, oik bwtrace does not alter the output of your web pages.

You can also use the oik trace facilities to assist in problem determination in a live site.
Output is written to files on the server in a user defined trace files directory.
When tracing a live or staging site you should ensure that the trace files directory is not publicly accessible.


  • Traces to a defined Trace files directory
  • Traces ALL server functionality, including AJAX, REST and other background requests
  • Writes summary trace record for each transaction into Daily Trace summary files
  • Traces browser transactions separately, if required
  • Traces AJAX transactions separately, if required
  • Traces REST requests separately, if required
  • Traces CLI requests separately, if required
  • Ability to choose the IP address to trace, defaults to ALL requests
  • Supports ad hoc tracing of user defined hooks
  • Action trace counts help you understand the sequence of actions and filters
  • Provides contextual information
  • Minimum performance overhead when tracing is not enabled
  • Tracing can be enabled programmatically
  • Traces and backtraces PHP Error, Warning and Notice messages
  • Backtraces deprecated logic messages
  • Does not require WP_DEBUG to be defined
  • Does not require SAVEQUERIES to be defined
  • Dynamically activates trace functions
  • Implemented as lazy just-in-time code
  • Can be used during regression testing
  • Can be activated in wp-config.php and db.php to trace code before WordPress is fully loaded
  • Plugin does not need to be activated if started programmatically or from wp-config.php
  • Operates as a standalone plugin
  • Integrated with oik-lib shared library management
  • Easy to code APIs: bw_trace2(), bw_backtrace().
  • API supports multiple trace levels

Ad hoc tracing allows you to:

  • trace parameters
  • trace results
  • trace registered functions
  • trace the global post
  • set the priority for the trace hook
  • debug backtrace hook invocation
  • perform ‘string watch’ to watch for a particular string

The trace record output can include:

  • Fully qualified source file name
  • Trace record count and trace error count
  • Time stamp
  • Current filter information
  • Hook count
  • Number of database queries that have been performed.
  • Current post ID
  • Current and peak memory usage (in bytes)
  • Files loaded count
  • Contextual information

The output for action tracing can include trace records showing:

  • Count of action hooks and filters
  • Invocation of the ‘wp’ actions
  • Contents of the global wp_rewrite for the ‘wp’ action
  • Summary reports at ‘shutdown’
  • Information about deprecated logic
  • Information related to Errors, Warnings and Notices

New in v3.0.0

  • All trace files are written within a user defined Trace files directory.
  • Tracing will not be activated if the Trace files directory is not specified or is not valid.
  • Supports purging of trace files from the Dashboard using a defined retention period.
  • The Daily Trace Summary file base name is now user defined.
  • Separated Trace ‘shutdown’ status report from Daily Trace summary.
  • Improvements to the [bwtrace] shortcode; moved from the oik plugin.
  • Improved support for tracing REST requests.
  • Added support for WP-CLI; initial prototype of ‘wp trace’ command.
  • Supports trace file generation logic for tracing parallel requests.
  • Improved support for tracing REST requests, with early detection of REST API calls
  • Fixes to logic broken by WordPress 4.7
  • Tested: With Gutenberg
  • Tested: With PHP 7.2 thru’ 7.4
  • Tested: With WordPress 5.3 and WordPress Multi Site

See also:

Is there a tutorial?

See this page and short video
Introduction to oik-bwtrace

Can I get support?

Use the contact form on the oik-plugins website.

How can I contribute?

[github bobbingwide oik-bwtrace]

Further reading

If you want to read more about the oik plugins then please visit the
oik plugin
“the oik plugin – for often included key-information”


  1. Upload the contents of the oik-bwtrace plugin to the `/wp-content/plugins/oik-bwtrace’ directory
  2. Activate the oik-bwtrace plugin through the ‘Plugins’ menu in WordPress
  3. Define your trace options using Settings > oik trace options
  4. Define your action trace options using Settings > oik action options
  5. Don’t forget to disable tracing when you no longer need it
  6. Don’t forget to purge the trace output when you no longer need it

Plugin author


Plugin official website address

If you encounter problems in using the oik-bwtrace plugin, you can comment below, and I will try my best to help you solve the problem

Leave a Comment

Your email address will not be published. Required fields are marked *