namespace Website { public abstract class Logger : ILogger { private static ILogger current = new EnterpriseLibrary.EntLibLogger(); public static ILogger Current { get { return current; } set { current = value; } } public void Debug(string message) { Log(message, LogLevel.Debug); } public void Debug(string format, params object[] args) { Debug(string.Format(format, args)); } public void Info(string message) { Log(message, LogLevel.Info); } public void Info(string format, params object[] args) { Warn(string.Format(format, args)); } public void Warn(string message) { Log(message, LogLevel.Warn); } public void Warn(string format, params object[] args) { Warn(string.Format(format, args)); } public void Error(string message) { Log(message, LogLevel.Error); } public void Error(string message, System.Exception exception) { Error(string.Format("{0}\n{1}", message, exception)); } public void Fatal(string message) { Log(message, LogLevel.Fatal); } public void Fatal(string format, params object[] args) { Fatal(string.Format(format, args)); } internal abstract void Log(string message, LogLevel level); internal enum LogLevel { Debug, Info, Warn, Error, Fatal } } }