web-dev-qa-db-fra.com

Journal - ajouter à chaque fichier?

Je souhaite utiliser JLog sur différents fichiers de mon composant.

Pour le moment, j'ajoute ceci à mon __contruct méthode:

JLog::addLogger( array( 'text_file' => 'com_bestia.log.php' ) );

Mais est-il possible de ne l'ajouter qu'une fois à un fichier et de l'utiliser sur d'autres fichiers?

2
MyFault

Je ne pense pas que ce que vous essayez de faire soit possible car le composant ne saura pas quand et quand ne pas enregistrer les erreurs.

Ce que vous pouvez faire est de charger la classe JLog et d’indiquer à votre composant de consigner toutes les erreurs, par exemple.

JLoader::register('JLog', JPATH_LIBRARIES . '/joomla/log/log.php');

JLog::addLogger(
    array(
        'text_file' => 'com_bestia.log.php'
    ),
    JLog::ALL,
    'com_bestia'
);

Ensuite, supposons (par exemple) que vous souhaitiez vérifier si un fichier existe et que vous souhaitiez enregistrer une erreur s’il n’existe pas:

if (JFile::exists('path_to_file'))
{
    // import the file
}
else
{
    JLog::add('File does not exist', JLog::WARNING, 'com_bestia');
}
1
Lodder