<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _show_notification(self, event, summary, message, icon, *actions):
 """ Show a notification. :param str event: event name :param str summary: notification title :param str message: notification body :param str icon: icon name :param actions: each item is a tuple with parameters for _add_action """

        notification = self._notify(summary, message, icon)
        timeout = self._get_timeout(event)
        if timeout != -1:
            notification.set_timeout(int(timeout * 1000))
        for action in actions:
            if action and self._action_enabled(event, action[0]):
                self._add_action(notification, *action)
        try:
            notification.show()
        except GLib.GError as exc:
            # Catch and log the exception. Starting udiskie with notifications
            # enabled while not having a notification service installed is a
            # mistake too easy to be made, but it shoud not render the rest of
            # udiskie's logic useless by raising an exception before the
            # automount handler gets invoked.
            self._log.error(_("Failed to show notification: {0}", exc_message(exc)))
            self._log.debug(format_exc())