1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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 ~
|