error_log () salida para print_r () que aparece en la página

2

Estoy tratando de depurar un complemento y estoy usando error_log() en varios lugares para ver qué son varias cosas. Estoy usando lo siguiente:

error_log( print_r( $variable ) );

Cuando veo debug.log , todo lo que veo es 1 y la salida real de la función error_log() se envía al navegador en su lugar.

Sé que otro complemento no está haciendo esto, ya que todos están deshabilitados con la excepción del que estoy escribiendo y en mi wp-config.php defino WP_DEBUG_DISPLAY como false .

Lo mismo sucede si también uso var_dump() y var_export() . Otras funciones como gettype() y otras funcionan bien.

¿Alguna forma de devolver la salida a debug.log ?

    
pregunta Cedon 17.12.2017 - 00:21

2 respuestas

5

La función print_r acepta el segundo parámetro para return para que vuelva a ejecutar la variable en lugar de imprimiéndolo.

print_r($expression, $return)

Así que puedes hacer

error_log( print_r( $variable, true ) );
    
respondido por el Shibi 17.12.2017 - 00:36
1

Si su variable es solo una cadena, simplemente puede usar error_log ( $variable ) . Si es un objeto o una matriz, aparte de usar print_r() , también puede serializarlo:

error_log ( serialize ( $variable ) );
    
respondido por el Jack Johansson 17.12.2017 - 10:15

Lea otras preguntas en las etiquetas