From b50f78e5da6f3fdfc59e577ca61b88771da7d211 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Thu, 12 Jul 2012 02:55:27 -0400 Subject: Initial check-in --- MediaBrowser.Common/Logging/BaseLogger.cs | 80 +++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 MediaBrowser.Common/Logging/BaseLogger.cs (limited to 'MediaBrowser.Common/Logging/BaseLogger.cs') diff --git a/MediaBrowser.Common/Logging/BaseLogger.cs b/MediaBrowser.Common/Logging/BaseLogger.cs new file mode 100644 index 000000000..51c6632d5 --- /dev/null +++ b/MediaBrowser.Common/Logging/BaseLogger.cs @@ -0,0 +1,80 @@ +using System; +using System.Diagnostics; +using System.Text; +using System.Threading; + +namespace MediaBrowser.Common.Logging +{ + public abstract class BaseLogger + { + public LogSeverity LogSeverity { get; set; } + + public void LogInfo(string message, params object[] paramList) + { + LogEntry(message, LogSeverity.Info, paramList); + } + + public void LogDebugInfo(string message, params object[] paramList) + { + LogEntry(message, LogSeverity.Debug, paramList); + } + + public void LogError(string message, params object[] paramList) + { + LogEntry(message, LogSeverity.Error, paramList); + } + + public void LogException(string message, Exception exception, params object[] paramList) + { + StringBuilder builder = new StringBuilder(); + + if (exception != null) + { + var trace = new StackTrace(exception, true); + builder.AppendFormat("Exception. Type={0} Msg={1} Src={2} Method={5} Line={6} Col={7}{4}StackTrace={4}{3}", + exception.GetType().FullName, + exception.Message, + exception.Source, + exception.StackTrace, + Environment.NewLine, + trace.GetFrame(0).GetMethod().Name, + trace.GetFrame(0).GetFileLineNumber(), + trace.GetFrame(0).GetFileColumnNumber()); + } + + StackFrame frame = new StackFrame(1); + + message = string.Format(message, paramList); + + LogError(string.Format("{0} ( {1} )", message, builder)); + } + + public void LogWarning(string message, params object[] paramList) + { + LogEntry(message, LogSeverity.Warning, paramList); + } + + private void LogEntry(string message, LogSeverity severity, params object[] paramList) + { + if (severity < LogSeverity) return; + + message = string.Format(message, paramList); + + Thread currentThread = Thread.CurrentThread; + + LogRow row = new LogRow() + { + Severity = severity, + Message = message, + Category = string.Empty, + ThreadId = currentThread.ManagedThreadId, + ThreadName = currentThread.Name, + Time = DateTime.Now + }; + + LogEntry(row); + } + + protected abstract void LogEntry(LogRow row); + } +} -- cgit v1.2.3