Definition of an event. Event is used as a key so both hashCode and equals need to be implemented properly. Inheriting of this class is an experimental feature. Instantiate directly if inheritance not necessary.
Specifies signature for the event handler
Raises an event the same way as Events.raise but catches an exception and logs it if the logger is provided