namespace Nwc.XmlRpc
{
using System;
/// Define levels of logging. This duplicates
/// similar enumerations in System.Diagnostics.EventLogEntryType. The
/// duplication was merited because .NET Compact Framework lacked the EventLogEntryType enum.
public enum LogLevel
{
/// Information level, log entry for informational reasons only.
Information,
/// Warning level, indicates a possible problem.
Warning,
/// Error level, implies a significant problem.
Error
}
///
///Logging singleton with swappable output delegate.
///
///
///This singleton provides a centralized log. The actual WriteEntry calls are passed
///off to a delegate however. Having a delegate do the actual logginh allows you to
///implement different logging mechanism and have them take effect throughout the system.
///
public class Logger
{
///Delegate definition for logging.
///The message String to log.
///The LogLevel of your message.
public delegate void LoggerDelegate(String message, LogLevel level);
///The LoggerDelegate that will recieve WriteEntry requests.
static public LoggerDelegate Delegate = null;
///
///Method logging events are sent to.
///
///The message String to log.
///The LogLevel of your message.
static public void WriteEntry(String message, LogLevel level)
{
if (Delegate != null)
Delegate(message, level);
}
}
}