Using JLog: Difference between revisions
From Joomla! Documentation
No edit summary |
→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 00:27, 7 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
To use JLog you need to call the JLog class. Done through the following code:
jimport('joomla.log.log');
Basic File Logging
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
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
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'
);