Information Technology Reference
In-Depth Information
Yo u c r e a t e a n e v e n t f o r e a c h s u b s y s t e m . C l i e n t s r e g i s t e r o n t h e e v e n t t h a t
is pertinent to their subsystems.
The extended Logger class has a System.ComponentModel.EventHandlerList
container that stores all the event objects that should be raised for a given
system. The updated AddMsg() method now takes a string parameter that
specifies the subsystem generating the log message. If the subsystem has
any listeners, the event gets raised. Also, if an event listener has registered
an interest in all messages, its event gets raised:
public sealed class
Logger
{
private static
System.ComponentModel.
EventHandlerList
Handlers =
new
EventHandlerList
();
static public void
AddLogger(
string
system,
EventHandler
<
LoggerEventArgs
> ev)
{
Handlers.AddHandler(system, ev);
}
static public void
RemoveLogger(
string
system,
EventHandler
<
LoggerEventArgs
> ev)
{
Handlers.RemoveHandler(system, ev);
}
static public void
AddMsg(
string
system,
int
priority,
string
msg)
{
if
(!
string
.IsNullOrEmpty(system))
{
EventHandler
<
LoggerEventArgs
> l =
Handlers[system]
as
EventHandler
<
LoggerEventArgs
>;
LoggerEventArgs
args =
new
LoggerEventArgs
(
priority, msg);
if
(l !=
null
)
l(
null
, args);