MODULE EventsKernelLog; (** AUTHOR "staubesv"; PURPOSE "Log system events to kernel log"; *) (** * Log system events to kernel log * * History: * * 07.03.2007 First release (staubesv) *) IMPORT KernelLog, Modules, Events, EventsUtils, Streams; CONST Verbose = TRUE; (* System event classification (AosEventClasses.XML) *) Class = 1; (* Events *) Subclass = 2; (* Logging *) ModuleName = "EventsKernelLog"; TYPE EventLogger = OBJECT(Events.Sink); VAR w : Streams.Writer; PROCEDURE Handle*(event : Events.Event); BEGIN EventsUtils.ToStream(w, event); END Handle; PROCEDURE &Init*; BEGIN name := ModuleName; NEW(w, KernelLog.Send, 1024); END Init; END EventLogger; VAR eventLogger- : EventLogger; PROCEDURE Install*; END Install; PROCEDURE Cleanup; BEGIN Events.AddEvent(ModuleName, Events.Information, Class, Subclass, 0, "Kernel log event logger shut down", Verbose); Events.Unregister(eventLogger); END Cleanup; BEGIN Modules.InstallTermHandler(Cleanup); NEW(eventLogger); Events.Register(eventLogger); Events.AddEvent(ModuleName, Events.Information, Class, Subclass, 0, "Started kernel log event logger", Verbose); END EventsKernelLog. EventsKernelLog.Install ~ SystemTools.Free EventsKernelLog ~