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); } } }