I end up adding a version of this to many jobs – virtually all of the ones that involve custom, original PHP coding that I don’t happen to get exactly right the first time. The place where I ran across it originally no longer seems accessbile, and the main addition to it that you won’t necessarily find elsewhere is a “var_export” upon encountering an object to be logged in full.
<?php /** * Plugin Name: Custom Logger * Description: In any PHP file add $message variable or string in format `custom_log( $message ) ;` to print time-coded log in active theme directory; use custom_log() ; just to find out if point in script has been reached; can use as many times as you like in as many different places as you like * Author: CK MacLeod * Author URI: https://ckmswp.com/ * Version: 1.0 * Date: June 22, 2020 */ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); if ( ! function_exists( 'custom_log' ) ) { //just write custom_log() ; if you just want to know if the point is reached function custom_log( $message = 'Reached' ) { if ( is_array( $message ) ) { $message = json_encode( $message ) ; } if ( is_object( $message ) ) { $message = var_export( $message, true ) ; } $file = fopen( get_stylesheet_directory() . "/custom_log.log", "a" ); fwrite( $file, "\n" . date('Y-m-d h:i:s') . " :: " . $message ) ; fclose( $file ) ; } }
/** * GET THE NAME OF THE FUNCTION * BEING LOGGED */ if ( function_exists( 'custom_log' ) ) : function test_logger() { $message = __FUNCTION__ ; custom_log( $message ) ; } endif;
On a page refresh, will output something like: 2020-06-23 03:29:00 :: test_logger
in the custom_log.log
file in your active theme’s directory.