Difference between revisions of "Using JLog"
From Joomla! Documentation
(→Logging a specific extension: correction for category parameter) |
|||
Line 26: | Line 26: | ||
'text_file' => 'com_helloworld.errors.php' | 'text_file' => 'com_helloworld.errors.php' | ||
), | ), | ||
− | //Sets all | + | // Sets messages of all log levels to be sent to the file |
JLog::ALL, | JLog::ALL, | ||
− | // | + | // The names of the log categories which should be sent to the file |
− | 'com_helloworld' | + | array('com_helloworld') |
); | ); | ||
− | Now remember to change the category when you add a log. Such as in the example below. | + | Now remember to change the category when you add a log message. Such as in the example below. |
JLog::add(JText::_('JTEXT_ERROR_MESSAGE'), JLog::WARNING, 'com_helloworld'); | JLog::add(JText::_('JTEXT_ERROR_MESSAGE'), JLog::WARNING, 'com_helloworld'); | ||
− | Note you may wish to combine this with the [[Display error messages and notices]] section to display visable error notifications to users. | + | Note: you may wish to combine this with the [[Display error messages and notices]] section to display visable error notifications to users. |
== Logging specific priorities == | == Logging specific priorities == |
Revision as of 19:27, 6 March 2014
Using JLog can be very useful in components when analysing the performance of custom extensions - or analysing where extensions are giving issues. Note this should be used in tandem with php exceptions - not as a replacement. See Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1 for more information on this
Calling the class[edit]
To use JLog you need to call the JLog class. Done through the following code:
jimport('joomla.log.log');
Basic File Logging[edit]
Often you may wish to display an error log message and log to an error file. Joomla allows this natively through the JLog::add function. For example:
JLog::add(JText::_('JTEXT_ERROR_MESSAGE'), JLog::WARNING, 'jerror');
Adding the category of jerror means that this message will also be displayed to users. To only write to file you can easily drop that parameter and simply use
JLog::add(JText::_('JTEXT_ERROR_MESSAGE'), JLog::WARNING);
Logging a specific extension[edit]
Sometimes it may be useful to log the errors to a specific file. In this case you can
JLog::addLogger( array( //Sets file name 'text_file' => 'com_helloworld.errors.php' ), // Sets messages of all log levels to be sent to the file JLog::ALL, // The names of the log categories which should be sent to the file array('com_helloworld') );
Now remember to change the category when you add a log message. Such as in the example below.
JLog::add(JText::_('JTEXT_ERROR_MESSAGE'), JLog::WARNING, 'com_helloworld');
Note: you may wish to combine this with the Display error messages and notices section to display visable error notifications to users.
Logging specific priorities[edit]
You can also add an additional logger to capture only critical and emergency log notifications.
JLog::addLogger( array( //Sets file name 'text_file' => 'com_helloworld.critical_emergency.php' ), //Sets critical and emergency JLog messages to be set to the file JLog::CRITICAL + JLog::EMERGENCY, //Chooses a category name 'com_helloworld' );