diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-04 11:31:33 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-04 11:31:33 -0500 |
| commit | 16b36d4d89abde2026eea57d60109bb3a50772fc (patch) | |
| tree | 14a7a55e04d28162ec32e7c9c2df37b20cab9bef | |
| parent | 1847a4bdb3303e7d54755a2ae6cb782e183d8c92 (diff) | |
fixed multiple log files
4 files changed, 47 insertions, 112 deletions
diff --git a/MediaBrowser.Common.Implementations/Logging/NlogManager.cs b/MediaBrowser.Common.Implementations/Logging/NlogManager.cs index 1e525137c..c5296dcfb 100644 --- a/MediaBrowser.Common.Implementations/Logging/NlogManager.cs +++ b/MediaBrowser.Common.Implementations/Logging/NlogManager.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Logging; +using System.Linq; +using MediaBrowser.Model.Logging; using NLog; using NLog.Config; using NLog.Targets; @@ -56,23 +57,21 @@ namespace MediaBrowser.Common.Implementations.Logging logFile.FileName = path; logFile.Layout = "${longdate}, ${level}, ${logger}, ${message}"; - AddLogTarget(logFile, "ApplicationLogFile", level); + RemoveTarget("ApplicationLogFile"); + logFile.Name = "ApplicationLogFile"; + + AddLogTarget(logFile, level); } /// <summary> /// Adds the log target. /// </summary> /// <param name="target">The target.</param> - /// <param name="name">The name.</param> /// <param name="level">The level.</param> - private void AddLogTarget(Target target, string name, LogSeverity level) + private void AddLogTarget(Target target, LogSeverity level) { var config = LogManager.Configuration; - - config.RemoveTarget(name); - - target.Name = name; - config.AddTarget(name, target); + config.AddTarget(target.Name, target); var rule = new LoggingRule("*", GetLogLevel(level), target); config.LoggingRules.Add(rule); @@ -81,6 +80,35 @@ namespace MediaBrowser.Common.Implementations.Logging } /// <summary> + /// Removes the target. + /// </summary> + /// <param name="name">The name.</param> + public void RemoveTarget(string name) + { + var config = LogManager.Configuration; + + var target = config.FindTargetByName(name); + + if (target != null) + { + foreach (var rule in config.LoggingRules.ToList()) + { + var contains = rule.Targets.Contains(target); + + rule.Targets.Remove(target); + + if (contains) + { + config.LoggingRules.Remove(rule); + } + } + + config.RemoveTarget(name); + LogManager.Configuration = config; + } + } + + /// <summary> /// Gets the logger. /// </summary> /// <param name="name">The name.</param> diff --git a/MediaBrowser.Common/Kernel/ResourcePool.cs b/MediaBrowser.Common/Kernel/ResourcePool.cs deleted file mode 100644 index 7a74c60a7..000000000 --- a/MediaBrowser.Common/Kernel/ResourcePool.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.Threading; - -namespace MediaBrowser.Common.Kernel -{ - /// <summary> - /// This is just a collection of semaphores to control the number of concurrent executions of various resources - /// </summary> - public class ResourcePool : IDisposable - { - /// <summary> - /// You tube - /// </summary> - public readonly SemaphoreSlim YouTube = new SemaphoreSlim(5, 5); - - /// <summary> - /// The trakt - /// </summary> - public readonly SemaphoreSlim Trakt = new SemaphoreSlim(5, 5); - - /// <summary> - /// The tv db - /// </summary> - public readonly SemaphoreSlim TvDb = new SemaphoreSlim(5, 5); - - /// <summary> - /// The movie db - /// </summary> - public readonly SemaphoreSlim MovieDb = new SemaphoreSlim(5, 5); - - /// <summary> - /// The fan art - /// </summary> - public readonly SemaphoreSlim FanArt = new SemaphoreSlim(5, 5); - - /// <summary> - /// The mb - /// </summary> - public readonly SemaphoreSlim Mb = new SemaphoreSlim(5, 5); - - /// <summary> - /// The mb - /// </summary> - public readonly SemaphoreSlim Lastfm = new SemaphoreSlim(5, 5); - - /// <summary> - /// Apple doesn't seem to like too many simulataneous requests. - /// </summary> - public readonly SemaphoreSlim AppleTrailerVideos = new SemaphoreSlim(1, 1); - - /// <summary> - /// The apple trailer images - /// </summary> - public readonly SemaphoreSlim AppleTrailerImages = new SemaphoreSlim(1, 1); - - /// <summary> - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// </summary> - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// <summary> - /// Releases unmanaged and - optionally - managed resources. - /// </summary> - /// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> - protected virtual void Dispose(bool dispose) - { - if (dispose) - { - YouTube.Dispose(); - Trakt.Dispose(); - TvDb.Dispose(); - MovieDb.Dispose(); - FanArt.Dispose(); - Mb.Dispose(); - AppleTrailerVideos.Dispose(); - AppleTrailerImages.Dispose(); - } - } - } -} diff --git a/MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs b/MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs index 75ef69924..226cd8e87 100644 --- a/MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs +++ b/MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs @@ -1,4 +1,6 @@ -using NLog; +using MediaBrowser.Common.Implementations.Logging; +using MediaBrowser.Model.Logging; +using NLog; using NLog.Config; using NLog.Targets; using System.ComponentModel; @@ -18,14 +20,17 @@ namespace MediaBrowser.ServerApplication.Logging /// </summary> private readonly TaskScheduler _uiThread; + private readonly ILogManager _logManager; + /// <summary> /// Initializes a new instance of the <see cref="LogWindow" /> class. /// </summary> /// <param name="kernel">The kernel.</param> - public LogWindow() + public LogWindow(ILogManager logManager) { InitializeComponent(); _uiThread = TaskScheduler.FromCurrentSynchronizationContext(); + _logManager = logManager; Loaded += LogWindow_Loaded; } @@ -42,6 +47,7 @@ namespace MediaBrowser.ServerApplication.Logging Layout = "${longdate}, ${level}, ${logger}, ${message}" }; + ((NlogManager)_logManager).RemoveTarget("LogWindowTraceTarget"); AddLogTarget(target, "LogWindowTraceTarget"); } @@ -53,7 +59,7 @@ namespace MediaBrowser.ServerApplication.Logging { base.OnClosing(e); - RemoveLogTarget("LogWindowTraceTarget"); + ((NlogManager) _logManager).RemoveTarget("LogWindowTraceTarget"); } /// <summary> @@ -83,8 +89,6 @@ namespace MediaBrowser.ServerApplication.Logging { var config = NLog.LogManager.Configuration; - config.RemoveTarget(name); - target.Name = name; config.AddTarget(name, target); @@ -95,19 +99,6 @@ namespace MediaBrowser.ServerApplication.Logging NLog.LogManager.Configuration = config; } - - /// <summary> - /// Removes the log target. - /// </summary> - /// <param name="name">The name.</param> - private void RemoveLogTarget(string name) - { - var config = NLog.LogManager.Configuration; - - config.RemoveTarget(name); - - NLog.LogManager.Configuration = config; - } /// <summary> /// Shuts down. diff --git a/MediaBrowser.ServerApplication/MainWindow.xaml.cs b/MediaBrowser.ServerApplication/MainWindow.xaml.cs index 9043e007f..22695602c 100644 --- a/MediaBrowser.ServerApplication/MainWindow.xaml.cs +++ b/MediaBrowser.ServerApplication/MainWindow.xaml.cs @@ -125,7 +125,7 @@ namespace MediaBrowser.ServerApplication // Add our log window if specified if (_configurationManager.Configuration.ShowLogWindow) { - Trace.Listeners.Add(new WindowTraceListener(new LogWindow())); + Trace.Listeners.Add(new WindowTraceListener(new LogWindow(_logManager))); } else { |
