diff options
Diffstat (limited to 'MediaBrowser.Common/Logging')
| -rw-r--r-- | MediaBrowser.Common/Logging/BaseLogger.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Common/Logging/LogRow.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Common/Logging/StreamLogger.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Common/Logging/ThreadedLogger.cs | 73 |
4 files changed, 10 insertions, 81 deletions
diff --git a/MediaBrowser.Common/Logging/BaseLogger.cs b/MediaBrowser.Common/Logging/BaseLogger.cs index 16eb96e20..bcf10d7dc 100644 --- a/MediaBrowser.Common/Logging/BaseLogger.cs +++ b/MediaBrowser.Common/Logging/BaseLogger.cs @@ -67,7 +67,7 @@ namespace MediaBrowser.Common.Logging Thread currentThread = Thread.CurrentThread;
- LogRow row = new LogRow()
+ LogRow row = new LogRow
{
Severity = severity,
Message = message,
diff --git a/MediaBrowser.Common/Logging/LogRow.cs b/MediaBrowser.Common/Logging/LogRow.cs index 052f6062a..6fecef59c 100644 --- a/MediaBrowser.Common/Logging/LogRow.cs +++ b/MediaBrowser.Common/Logging/LogRow.cs @@ -1,7 +1,5 @@ using System;
-using System.Text;
using System.Collections.Generic;
-using System.Linq;
namespace MediaBrowser.Common.Logging
{
@@ -17,7 +15,7 @@ namespace MediaBrowser.Common.Logging public override string ToString()
{
- List<string> data = new List<string>();
+ var data = new List<string>();
data.Add(Time.ToString(TimePattern));
diff --git a/MediaBrowser.Common/Logging/StreamLogger.cs b/MediaBrowser.Common/Logging/StreamLogger.cs index caeb803bd..03b9bd6d2 100644 --- a/MediaBrowser.Common/Logging/StreamLogger.cs +++ b/MediaBrowser.Common/Logging/StreamLogger.cs @@ -7,7 +7,7 @@ namespace MediaBrowser.Common.Logging /// <summary>
/// Provides a Logger that can write to any Stream
/// </summary>
- public class StreamLogger : ThreadedLogger
+ public class StreamLogger : BaseLogger
{
private Stream Stream { get; set; }
@@ -17,11 +17,15 @@ namespace MediaBrowser.Common.Logging Stream = stream;
}
- protected override void AsyncLogMessage(LogRow row)
+ protected override void LogEntry(LogRow row)
{
byte[] bytes = new UTF8Encoding().GetBytes(row.ToString() + Environment.NewLine);
- Stream.Write(bytes, 0, bytes.Length);
- Stream.Flush();
+
+ lock (Stream)
+ {
+ Stream.Write(bytes, 0, bytes.Length);
+ Stream.Flush();
+ }
}
public override void Dispose()
diff --git a/MediaBrowser.Common/Logging/ThreadedLogger.cs b/MediaBrowser.Common/Logging/ThreadedLogger.cs deleted file mode 100644 index f53b3d426..000000000 --- a/MediaBrowser.Common/Logging/ThreadedLogger.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System;
-using System.Collections.Generic;
-using System.Threading;
-
-namespace MediaBrowser.Common.Logging
-{
- public abstract class ThreadedLogger : BaseLogger
- {
- Thread loggingThread;
- Queue<Action> queue = new Queue<Action>();
- AutoResetEvent hasNewItems = new AutoResetEvent(false);
- volatile bool terminate = false;
- bool waiting = false;
-
- public ThreadedLogger()
- : base()
- {
- loggingThread = new Thread(new ThreadStart(ProcessQueue));
- loggingThread.IsBackground = true;
- loggingThread.Start();
- }
-
-
- void ProcessQueue()
- {
- while (!terminate)
- {
- waiting = true;
- hasNewItems.WaitOne(10000, true);
- waiting = false;
-
- Queue<Action> queueCopy;
- lock (queue)
- {
- queueCopy = new Queue<Action>(queue);
- queue.Clear();
- }
-
- foreach (var log in queueCopy)
- {
- log();
- }
- }
- }
-
- protected override void LogEntry(LogRow row)
- {
- lock (queue)
- {
- queue.Enqueue(() => AsyncLogMessage(row));
- }
- hasNewItems.Set();
- }
-
- protected abstract void AsyncLogMessage(LogRow row);
-
- protected override void Flush()
- {
- while (!waiting)
- {
- Thread.Sleep(1);
- }
- }
-
- public override void Dispose()
- {
- Flush();
- terminate = true;
- hasNewItems.Set();
- base.Dispose();
- }
- }
-}
|
