[dev] Horde::logMessage usage

Jan Schneider jan at horde.org
Sat Jul 9 15:08:50 UTC 2011


Zitat von Vilius ?umskas <vilius at lnk.lt>:

> Hi,
>
>   My question probably a stupid one, but my head hurts when things
>   comes to exception handling.
>
>   What  is  a  current  policy  regarding  Horde::logMessage()  usage?
>   Particularly   I'm   interested   in  do I have to use logMessage($e,
>   'ERR') after Horde_Db_Exception  is  caught? As far as I  
> understand DB exceptions
>   are logged at debug level anyway, right?
>
>   Similarly what about Horde_Exception_NotFound or  
> Horde_Exception_PermissionDenied?
>
>   An example from Ulaform:
>
> if ($fieldform->validate($vars)) {
>     /* Save field if valid and the current and old field type match. */
>     $fieldform->getInfo($vars, $info);
>     try {
>         $save_field =  
> $injector->getInstance('Ulaform_Factory_Driver')->create()->saveField($info);
>         $notification->push(_("Field saved."), 'horde.success');
>         $url = Horde::url('fields.php', true);
>         $url = Horde_Util::addParameter($url, array('form_id' =>  
> $info['form_id']),
>                                   null, false);
>         header('Location: ' . $url);
>         exit;
>     } catch (Horde_Exception $e) {
>         Horde::logMessage($e->getMessage(), 'ERR');
>         $notification->push(sprintf(_("Error saving field. %s."),  
> $e->getMessage()), 'horde.error');
>     }
> }
>
>
> saveField() throws Horde_Db_Exception or Horde_Exception_NotFound. Do
> I really need logMessage at that point?

Whether you want to log the exception or not depends on whether it may  
contain a useful error message for the administrator. It's a  
case-by-case decision, it doesn't make sense to log (or even catch)  
developer errors, and for most user-errors either.

Generally you can simply pass the complete exception to logMessage(),  
you can leave out the level then:

Horde::logMessage($e);

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the dev mailing list