// // // // // $Revision$ // using System; using System.IO; namespace ICSharpCode.Core.Services { /// /// LoggingService implementation that logs into a TextWriter. /// public class TextWriterLoggingService : ILoggingService { readonly TextWriter writer; public TextWriterLoggingService(TextWriter writer) { if (writer == null) throw new ArgumentNullException("writer"); this.writer = writer; this.IsFatalEnabled = true; this.IsErrorEnabled = true; this.IsWarnEnabled = true; this.IsInfoEnabled = true; this.IsDebugEnabled = true; } void Write(object message, Exception exception) { if (message != null) { writer.WriteLine(message.ToString()); } if (exception != null) { writer.WriteLine(exception.ToString()); } } public bool IsDebugEnabled { get; set; } public bool IsInfoEnabled { get; set; } public bool IsWarnEnabled { get; set; } public bool IsErrorEnabled { get; set; } public bool IsFatalEnabled { get; set; } public void Debug(object message) { if (IsDebugEnabled) { Write(message, null); } } public void DebugFormatted(string format, params object[] args) { Debug(string.Format(format, args)); } public void Info(object message) { if (IsInfoEnabled) { Write(message, null); } } public void InfoFormatted(string format, params object[] args) { Info(string.Format(format, args)); } public void Warn(object message) { Warn(message, null); } public void Warn(object message, Exception exception) { if (IsWarnEnabled) { Write(message, exception); } } public void WarnFormatted(string format, params object[] args) { Warn(string.Format(format, args)); } public void Error(object message) { Error(message, null); } public void Error(object message, Exception exception) { if (IsErrorEnabled) { Write(message, exception); } } public void ErrorFormatted(string format, params object[] args) { Error(string.Format(format, args)); } public void Fatal(object message) { Fatal(message, null); } public void Fatal(object message, Exception exception) { if (IsFatalEnabled) { Write(message, exception); } } public void FatalFormatted(string format, params object[] args) { Fatal(string.Format(format, args)); } } }