EventsKernelLog.Mod 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. MODULE EventsKernelLog; (** AUTHOR "staubesv"; PURPOSE "Log system events to kernel log"; *)
  2. (**
  3. * Log system events to kernel log
  4. *
  5. * History:
  6. *
  7. * 07.03.2007 First release (staubesv)
  8. *)
  9. IMPORT
  10. KernelLog, Modules, Events, EventsUtils, Streams;
  11. CONST
  12. Verbose = TRUE;
  13. (* System event classification (AosEventClasses.XML) *)
  14. Class = 1; (* Events *)
  15. Subclass = 2; (* Logging *)
  16. ModuleName = "EventsKernelLog";
  17. TYPE
  18. EventLogger = OBJECT(Events.Sink);
  19. VAR w : Streams.Writer;
  20. PROCEDURE Handle*(event : Events.Event);
  21. BEGIN
  22. EventsUtils.ToStream(w, event);
  23. END Handle;
  24. PROCEDURE &Init*;
  25. BEGIN
  26. name := ModuleName;
  27. NEW(w, KernelLog.Send, 1024);
  28. END Init;
  29. END EventLogger;
  30. VAR
  31. eventLogger- : EventLogger;
  32. PROCEDURE Install*;
  33. END Install;
  34. PROCEDURE Cleanup;
  35. BEGIN
  36. Events.AddEvent(ModuleName, Events.Information, Class, Subclass, 0, "Kernel log event logger shut down", Verbose);
  37. Events.Unregister(eventLogger);
  38. END Cleanup;
  39. BEGIN
  40. Modules.InstallTermHandler(Cleanup);
  41. NEW(eventLogger);
  42. Events.Register(eventLogger);
  43. Events.AddEvent(ModuleName, Events.Information, Class, Subclass, 0, "Started kernel log event logger", Verbose);
  44. END EventsKernelLog.
  45. EventsKernelLog.Install ~ SystemTools.Free EventsKernelLog ~