這個外掛並未在最新的 3 個 WordPress 主要版本上進行測試。開發者可能不再對這個外掛進行維護或提供技術支援,並可能會與更新版本的 WordPress 產生使用上的相容性問題。

WP Log in Browser

外掛說明

I’m working on a nice admin screen to config auto-logging of some common things (like wp_query in pre_get_posts and wp), and some other goodies.

To log things manually, you can use:

browser()->log  ( $var, $label );
browser()->warn ( $var, $label );
browser()->info ( $var, $label );
browser()->error( $var, $label );

Also, commandas are chainable:

browser()->log( 'This is a log...' )->error( '...and this is an error' );

For example, to log all your main query’s query_vars:

add_filter( 'pre_get_posts', 'log_wp_query', 10000 );

function log_wp_query( $query ) {
    if ( $query->is_main_query() )
        browser()->log( $query->query_vars, 'pre_get_posts' );

    return $query;
}

Filters

wplinb-match-wp-debug: Set to true to only log when wp_debug is true. To prevent logging when wp_debug is false:

add_filter( 'wplinb-match-wp-debug', '__return_true' );

wplinb-enabled: To disable logging completely. It takes precedence over wplinb-match-wp-debug. To disable logging:

add_filter( 'wplinb-enabled', '__return_false' );

Profiling

The plugin includes a really simple function to allow you to track execution time of different parts of your code.

browser()->timer( $key, $log = false );

The first time you call this function with a given $key (string) it will start a timer, and return false. You can start as many timers as you want, using different $key values. You can ignore the second parameter for this first call.

The second time you call this function with a given $key, it will return the ellapsed time in seconds since you started this $key timer. If you set the second parameter to true, it will also log this value to the browser.

Example 1: Sequential use, log manually.

browser()->timer( 'Mega loop' );
for ( $i = 0; $i < 1000000; $i++ ) {
    //do something
}
$time = browser()->timer( 'Mega loop' );
browser()->log( $time, 'The mega loop took:' );

Example 2: Start and end in different places, log automatically.

add_action( 'posts_selection', 'start_timer', 100 );
add_filter( 'the_posts', 'end_timer', 1, 2 );

function start_timer( $query ) {
    browser()->timer( 'Main query time' );
}

function end_timer( $posts, $query ) {
    browser()->timer( 'Main query time', true );
    return $posts;
}

This is not a good way of measuring how much time a query takes to run, it’s just to illustrate how to use the timer.

In exactly the same way, you can use the function

Browser()->memory( $key, $log = false );

to measure delta of memory consumption from your first call and your second call with the same $key.

Example:

Browser()->memory( 'testing' );
$test = array();
for ( $i = 0; $i < 100; $i++ ) {
    $test[$i] = md5( rand( 1, $i ) );
}
Browser()->memory( 'testing', true );


Browser()->memory( 'testing' );
$test = array();
for ( $i = 0; $i < 10000; $i++ ) {
    $test[$i] = md5( rand( 1, $i ) );
}
Browser()->memory( 'testing', true );

安裝方式

For Chrome you need to install the ChromePHP extension.
For Firefox you need to install both the FireBug and FirePHP extensions.

  1. Upload to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

使用者評論

這個外掛目前沒有任何使用者評論。

參與者及開發者

以下人員參與了開源軟體〈WP Log in Browser〉的開發相關工作。

參與者

將〈WP Log in Browser〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

0.1.2

  • Fix output buffering. It was failing in some scenarios.
  • Added timer function to easily profile execution time.
  • Added memory function to easily profile memory consumption.

0.1.1

  • Fix case on include for ChromePhp (props faction23)
  • Make the logger work from an AJAX handler
  • Add filter wplinb-match-wp-debug to log only when wp_debug is on
  • Add filter wplinb-enabled to disable logging completely. It has precedence over wplinb-match-wp-debug

0.1

  • First release