...
Check out other events for examples of toString implementations, each object in the PortalEvent hierarchy should simply append its fields to the parent's toString and final events should append a final "]"
Portal Event Dispatching
To simplify the work in gathering the common data required to create a PortalEvent the IPortalEventFactory interface defines APIs for publishing.
PortalEvent Persistence
As a method of gathering statistics about the portal and serving as an audit log uPortal comes with a service that stores all PortalEvents to a database. Events within a uPortal instance are queued and asynchronously flushed to the database once per second.
https://wiki.jasig.org/display/UPC/Portal+Events