The post Writing to the PHP error_log with var_dump & print_r appeared first on Justin Silver.
]]>Writing objects to the PHP error log using error_log() can be useful, but it isn’t allowed – you can only write strings there. What to do?
Well, luckily there are options for both print_r() – human friendly – and var_dump() – parseable – that will let you convert an object into a string.
Using print_r() is the easiest, since the second parameter to the function says that we want to send the output to a variable rather than echoing it. Thus, to write to the error_log you just need to use the following code.
$object = new MyObject(); error_log( print_r( $object, true ) );
If you want the more detailed output of var_dump(), it’s a bit trickier, but still pretty easy. In a nutshell, since you can only echo the results you have to capture the output buffer with ob_start(), assign it to a variable, and then clean the buffer with ob_end_clean() allowing you to write the resulting variable to the error_log.
function var_error_log( $object=null ){
ob_start(); // start buffer capture
var_dump( $object ); // dump the values
$contents = ob_get_contents(); // put the buffer into a variable
ob_end_clean(); // end capture
error_log( $contents ); // log contents of the result of var_dump( $object )
}
$object = new MyObject();
var_error_log( $object );
The post Writing to the PHP error_log with var_dump & print_r appeared first on Justin Silver.
]]>