Loggable ======== Loggable is an interface inherited by any class that wants events relating to its member objects to be saved to the system log. ``ElggEntity`` and ``ElggExtender`` both inherit ``Loggable``. Loggable defines several class methods that are used in saving to the default system log, and can be used to define your own (as well as for other purposes): - ``getSystemLogID()`` Return a unique identifier for the object for storage in the system log. This is likely to be the object's GUID - ``getClassName()`` Return the class name of the object - ``getType()`` Return the object type - ``getSubtype()`` Get the object subtype - ``getObjectFromID($id)`` For a given ID, return the object associated with it - ``getObjectOwnerGUID()`` Return the GUID of the owner of this object Database details ---------------- The default system log is stored in the ``system_log`` :doc:`database table `. It contains the following fields: - **id** - A unique numeric row ID - **object_id** - The GUID of the entity being acted upon - **object_class** - The class of the entity being acted upon (eg ElggObject) - **object_type** - The type of the entity being acted upon (eg object) - **object_subtype** - The subtype of the entity being acted upon (eg blog) - **event** - The event being logged (eg create or update) - **performed_by_guid** - The GUID of the acting entity (the user performing the action) - **owner_guid** - The GUID of the user which owns the entity being acted upon - **access_id** - The access restriction associated with this log entry - **time_created** - The UNIX epoch timestamp of the time the event took place