it-swarm-eu.dev

Registrazione su un file solo con JLog

Credo che documentazione JLog non sia corretto con questo:

Spesso si potrebbe desiderare di visualizzare un messaggio di registro degli errori e accedere a un file di errori. Joomla lo consente in modo nativo tramite la funzione JLog :: add. Per esempio:

JLog::a dd(JText::_('JTEXT_ERROR_MESSAGE'), JLog::WARNING, 'jerror');

L'aggiunta della categoria di jerror significa che questo messaggio verrà visualizzato anche per gli utenti. Per scrivere solo su file puoi facilmente rilasciare quel parametro e semplicemente usarlo

JLog::a dd(JText::_('JTEXT_ERROR_MESSAGE'), JLog::WARNING);

Ho trovato l'esatto contrario in J3.3. Quando uso:

JLog::add(JText::_('JTEXT_ERROR_MESSAGE'), JLog::WARNING); 

Si registra anche per l'utente. Se aggiungo la categoria non lo fa.

Qualcuno può confermare che non sto impazzendo o spiegare il mio malinteso?

Se ho ragione, come puoi contribuire con una richiesta di modifica della documentazione?

5
Tom

Questo è il modo in cui uso per aggiungere una voce di registro a un file. JLog :: add è cambiato troppo tra le versioni di Joomla.

$config = array(
    'text_file' => 'logging.log'
);

// Joomla 3
jimport('joomla.log.logger.formattedtext');
$logger = new JLogLoggerFormattedtext($config);

// Joomla 2.5   
// jimport('joomla.log.loggers.formattedtext');
// $logger = new JLoggerFormattedText($config);

// Comment is a string
// $status can be JLog::INFO, JLog::WARNING, JLog::ERROR, JLog::ALL, JLog::EMERGENCY or JLog::CRITICAL
$entry = new JLogEntry($comment, $status);
$logger->addEntry($entry);
4
Anibal

Ho aggiornato la pagina Documentazione JLog di cui sopra, per (si spera) per renderlo accurato. Quindi, se chiunque stia osservando questa domanda potrebbe verificarlo e sollevare eventuali problemi (come commenti su questa risposta), sarebbe molto apprezzato.

Per quanto riguarda la domanda specifica, ho Joomla 3.7 in esecuzione e ha un codice di base in librerie/cms.php che imposta un logger sul 'messagequeue':

JLog::addLogger(array('logger' => 'messagequeue'), JLog::ALL, array('jerror'));

E quindi qualsiasi cosa con una categoria di 'jerror' viene copiata in questo logger, che quindi visualizza il messaggio all'utente tramite il metodo JFactory::getApplication()->enqueueMessage().

Per quanto riguarda ottenere una modifica alla documentazione di Joomla, è necessario registrarsi per contribuire alla documentazione di Joomla (ad es. Come contribuire alla documentazione di Joomla , quindi contrassegnare la pagina come attenzione (oltre al motivo), o puoi anche risolverlo da solo.

Ma penso in questo caso che la documentazione fosse corretta e che si trattasse di un bug temporaneo nel codice, come descritto in problema di Joomla su JLog .

0
Robbie Jackson