Question

Je suis actuellement en train de passer de notre propre solution de journalisation exclusive à Log4php dans l'un de nos projets.Notre propre solution a une méthode d'assistance que j'ai postée ci-dessous.Le but de la méthode est d'écrire le contenu d'une variable (et de ses membres de ce qu'il est récursivement) au journal.

L'endroit équivalent pour cette méthode dans Log4phP serait la classe de l'enregistreur (je suppose).Mais je me demande quelle est la bonne façon d'intégrer la fonctionnalité.

Devrais-je simplement dériver de l'enregistreur et l'étendre?Ou existe-t-il un moyen de "brancher" cette fonctionnalité.

Merci d'avance.

/**
* Dump the complete content of the target object to the log.
*
* @param mixed $target The object to dump.
* @param int $level The verbosity level.
* @param int $indent Indentation level.
*/
public static function dump( $target, $level = Logging::eDEBUG, $indent = 0 ) {
  if( $level < self::getInstance()->logLevel ) return;

  if( null == $target ) {
    self::log( "d", "> " . str_repeat( "\t", $indent ) . "null", $level );
    return;
  }

  if( is_string( $target ) || is_numeric( $target ) ) {
    self::log( "d", "> " . str_repeat( "\t", $indent ) . $target, $level );
    return;
  }

  foreach( $target as $key => $value ) {
    if( is_array( $value ) ) {
      self::log( "d", "> " . str_repeat( "\t", $indent ) . $key . " -> Array (", $level );
      self::dump( $value, $level, $indent + 1 );
      self::log( "d", "> " . str_repeat( "\t", $indent ) . ")", $level );
      continue;
    }

    if( is_object( $value ) ) {
      self::log( "d", "> " . str_repeat( "\t", $indent ) . $key . " -> Object (", $level );
      self::dump( (array)$value, $level, $indent + 1 );
      self::log( "d", "> " . str_repeat( "\t", $indent ) . ")", $level );

    } else {
      self::log( "d", "> " . str_repeat( "\t", $indent ) . $key . " -> " . $value, $level );
    }
  }
} 

Était-ce utile?

La solution

Tout cela est expliqué dans le log4php Docs .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top