YOURLS/includes/functions-debug.php
jarebear6expepjozn6rakjq5iczi3irqwphcvbswgkahd6b6twnxxid 8e57e1a30a
Use sandbox for all included files (#3478)
- updated calls to functions
- deprecate function yourls_activate_plugin_sandbox()
- add unit tests
- log loaded files
- tweak yourls_debug_log to allow early uses

Co-authored-by: e-ht <1045813+e-ht@users.noreply.github>
Co-authored-by: eht <1045813+e-ht@users.noreply.github.com>
Co-authored-by: ྅༻ Ǭɀħ ༄༆ཉ <ozh@ozh.org>

Closes #3321
2023-02-12 13:31:46 +01:00

71 lines
1.7 KiB
PHP

<?php
/*
* Functions relative to debugging
*/
/**
* Add a message to the debug log
*
* When in debug mode ( YOURLS_DEBUG == true ) the debug log is echoed in yourls_html_footer()
* Log messages are appended to $ydb->debug_log array, which is instanciated within class Database\YDB
*
* @since 1.7
* @param string $msg Message to add to the debug log
* @return string The message itself
*/
function yourls_debug_log( $msg ) {
yourls_do_action( 'debug_log', $msg );
// Get the DB object ($ydb), get its profiler (\Aura\Sql\Profiler\Profiler), its logger (\Aura\Sql\Profiler\MemoryLogger) and
// pass it a unused argument (loglevel) and the message
// Check if function exists to allow usage of the function in very early stages
if(function_exists('yourls_debug_log')) {
yourls_get_db()->getProfiler()->getLogger()->log( 'debug', $msg);
}
return $msg;
}
/**
* Get the debug log
*
* @since 1.7.3
* @return array
*/
function yourls_get_debug_log() {
return yourls_get_db()->getProfiler()->getLogger()->getMessages();
}
/**
* Get number of SQL queries performed
*
* @return int
*/
function yourls_get_num_queries() {
return yourls_apply_filter( 'get_num_queries', yourls_get_db()->get_num_queries() );
}
/**
* Debug mode set
*
* @since 1.7.3
* @param bool $bool Debug on or off
* @return void
*/
function yourls_debug_mode( $bool ) {
// log queries if true
yourls_get_db()->getProfiler()->setActive( (bool)$bool );
// report notices if true
$level = $bool ? -1 : ( E_ERROR | E_PARSE );
error_reporting( $level );
}
/**
* Return YOURLS debug mode
*
* @since 1.7.7
* @return bool
*/
function yourls_get_debug_mode() {
return defined( 'YOURLS_DEBUG' ) && YOURLS_DEBUG;
}