From fdafa596832eae13cebcf5bbe5fa867f7ba068f0 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Thu, 21 Feb 2013 20:26:35 -0500 Subject: Removed System.Windows.Forms dependancy from Common. Almost done removing NLog dependancy. --- .../HttpHandlers/PlaybackCheckInHandler.cs | 4 +- MediaBrowser.Api/LibraryService.cs | 8 +- .../Streaming/BaseHlsPlaylistHandler.cs | 4 +- .../Streaming/BaseProgressiveStreamingHandler.cs | 2 +- MediaBrowser.Api/Streaming/BaseStreamingHandler.cs | 14 +- .../UserLibrary/BaseItemsByNameService.cs | 3 +- MediaBrowser.Api/UserLibrary/ItemsService.cs | 4 +- MediaBrowser.Api/UserLibrary/UserLibraryService.cs | 12 +- MediaBrowser.Api/UserService.cs | 8 +- MediaBrowser.Common/IO/FileSystem.cs | 5 +- MediaBrowser.Common/Kernel/BaseKernel.cs | 82 +--- .../Kernel/BasePeriodicWebSocketListener.cs | 5 +- MediaBrowser.Common/Kernel/IApplicationHost.cs | 19 + MediaBrowser.Common/Kernel/IKernel.cs | 9 +- MediaBrowser.Common/Logging/LogHelper.cs | 90 ----- MediaBrowser.Common/Logging/LogManager.cs | 20 - MediaBrowser.Common/Logging/LogWindow.xaml | 8 - MediaBrowser.Common/Logging/LogWindow.xaml.cs | 128 ------- MediaBrowser.Common/Logging/NLogger.cs | 201 ---------- MediaBrowser.Common/Logging/WindowTraceListener.cs | 75 ---- MediaBrowser.Common/MediaBrowser.Common.csproj | 18 +- MediaBrowser.Common/Net/AlchemyWebSocket.cs | 1 - MediaBrowser.Common/Net/BaseRestService.cs | 12 +- MediaBrowser.Common/Net/Handlers/BaseHandler.cs | 27 +- MediaBrowser.Common/Net/HttpServer.cs | 4 +- MediaBrowser.Common/Net/WebSocketConnection.cs | 3 +- MediaBrowser.Common/Plugins/BasePlugin.cs | 1 - .../ScheduledTasks/BaseScheduledTask.cs | 6 +- .../ScheduledTasks/IScheduledTask.cs | 4 +- .../ScheduledTasks/Tasks/SystemUpdateTask.cs | 1 - MediaBrowser.Common/Serialization/XmlSerializer.cs | 3 +- MediaBrowser.Common/UI/BaseApplication.cs | 412 --------------------- MediaBrowser.Controller/Drawing/ImageHeader.cs | 3 +- MediaBrowser.Controller/Drawing/ImageManager.cs | 17 +- MediaBrowser.Controller/Entities/BaseItem.cs | 5 +- .../Entities/CollectionFolder.cs | 1 - MediaBrowser.Controller/Entities/Folder.cs | 3 +- MediaBrowser.Controller/Entities/Movies/Movie.cs | 1 - MediaBrowser.Controller/Entities/User.cs | 1 - MediaBrowser.Controller/IO/DirectoryWatchers.cs | 1 - MediaBrowser.Controller/IO/FileData.cs | 1 - MediaBrowser.Controller/Kernel.cs | 20 +- MediaBrowser.Controller/Library/DtoBuilder.cs | 36 +- MediaBrowser.Controller/Library/Profiler.cs | 5 +- MediaBrowser.Controller/Library/UserManager.cs | 2 +- .../Localization/LocalizedStrings.cs | 3 +- MediaBrowser.Controller/Localization/Ratings.cs | 5 +- .../MediaBrowser.Controller.csproj | 2 +- .../Providers/BaseImageEnhancer.cs | 25 +- .../Providers/BaseMetadataProvider.cs | 4 +- .../MediaInfo/FFProbeAudioInfoProvider.cs | 1 - .../Providers/TV/RemoteSeasonProvider.cs | 3 +- MediaBrowser.Controller/Resolvers/TV/TVUtils.cs | 5 +- .../MediaBrowser.Installer_TemporaryKey.pfx | Bin 0 -> 1676 bytes MediaBrowser.Logging.NLog/LogHelper.cs | 90 +++++ .../MediaBrowser.Logging.NLog.csproj | 70 ++++ MediaBrowser.Logging.NLog/NLogger.cs | 201 ++++++++++ MediaBrowser.Logging.NLog/NlogManager.cs | 50 +++ .../Properties/AssemblyInfo.cs | 36 ++ MediaBrowser.Logging.NLog/packages.config | 4 + MediaBrowser.Plugins.MpcHc/MpcHcMediaPlayer.cs | 10 +- MediaBrowser.Plugins.Tmt5/Tmt5MediaPlayer.cs | 8 +- MediaBrowser.Server.Sqlite/SQLiteRepository.cs | 1 - .../MediaBrowser.Server.Uninstall.csproj | 9 +- MediaBrowser.ServerApplication/App.xaml | 15 +- MediaBrowser.ServerApplication/App.xaml.cs | 326 ++++++++++++++-- .../Controls/ItemUpdateNotification.xaml.cs | 3 +- .../Controls/MultiItemUpdateNotification.xaml.cs | 3 +- .../Logging/LogWindow.xaml | 8 + .../Logging/LogWindow.xaml.cs | 128 +++++++ .../Logging/WindowTraceListener.cs | 75 ++++ MediaBrowser.ServerApplication/MainWindow.xaml.cs | 4 +- .../MediaBrowser.ServerApplication.csproj | 18 + ...MediaBrowser.ServerApplication_TemporaryKey.pfx | Bin 0 -> 1676 bytes MediaBrowser.ServerApplication/packages.config | 1 + .../MediaBrowser.UI.Uninstall.csproj | 9 +- MediaBrowser.UI.sln | 12 + MediaBrowser.UI/App.xaml | 7 +- MediaBrowser.UI/App.xaml.cs | 267 ++++++++++++- MediaBrowser.UI/Controller/UIKernel.cs | 13 +- MediaBrowser.UI/ImageViewerWindow.xaml.cs | 2 +- MediaBrowser.UI/MainWindow.xaml.cs | 2 - MediaBrowser.UI/MediaBrowser.UI.csproj | 5 + MediaBrowser.UI/MediaBrowser.UI_TemporaryKey.pfx | Bin 0 -> 1676 bytes MediaBrowser.UI/Playback/BaseMediaPlayer.cs | 5 +- .../Playback/ExternalPlayer/BaseExternalPlayer.cs | 8 +- .../ExternalPlayer/GenericExternalPlayer.cs | 7 + .../InternalPlayer/BaseInternalMediaPlayer.cs | 5 + .../Playback/NVlc/InternalMediaPlayerNVlc.cs | 12 +- MediaBrowser.UI/ViewModels/DtoBaseItemViewModel.cs | 3 +- .../Api/DashboardInfoWebSocketListener.cs | 2 +- MediaBrowser.WebDashboard/Api/DashboardService.cs | 10 +- MediaBrowser.sln | 16 + 93 files changed, 1520 insertions(+), 1262 deletions(-) create mode 100644 MediaBrowser.Common/Kernel/IApplicationHost.cs delete mode 100644 MediaBrowser.Common/Logging/LogHelper.cs delete mode 100644 MediaBrowser.Common/Logging/LogManager.cs delete mode 100644 MediaBrowser.Common/Logging/LogWindow.xaml delete mode 100644 MediaBrowser.Common/Logging/LogWindow.xaml.cs delete mode 100644 MediaBrowser.Common/Logging/NLogger.cs delete mode 100644 MediaBrowser.Common/Logging/WindowTraceListener.cs delete mode 100644 MediaBrowser.Common/UI/BaseApplication.cs create mode 100644 MediaBrowser.Installer/MediaBrowser.Installer_TemporaryKey.pfx create mode 100644 MediaBrowser.Logging.NLog/LogHelper.cs create mode 100644 MediaBrowser.Logging.NLog/MediaBrowser.Logging.NLog.csproj create mode 100644 MediaBrowser.Logging.NLog/NLogger.cs create mode 100644 MediaBrowser.Logging.NLog/NlogManager.cs create mode 100644 MediaBrowser.Logging.NLog/Properties/AssemblyInfo.cs create mode 100644 MediaBrowser.Logging.NLog/packages.config create mode 100644 MediaBrowser.ServerApplication/Logging/LogWindow.xaml create mode 100644 MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs create mode 100644 MediaBrowser.ServerApplication/Logging/WindowTraceListener.cs create mode 100644 MediaBrowser.ServerApplication/MediaBrowser.ServerApplication_TemporaryKey.pfx create mode 100644 MediaBrowser.UI/MediaBrowser.UI_TemporaryKey.pfx diff --git a/MediaBrowser.Api/HttpHandlers/PlaybackCheckInHandler.cs b/MediaBrowser.Api/HttpHandlers/PlaybackCheckInHandler.cs index b608d831b..7e0d27e49 100644 --- a/MediaBrowser.Api/HttpHandlers/PlaybackCheckInHandler.cs +++ b/MediaBrowser.Api/HttpHandlers/PlaybackCheckInHandler.cs @@ -66,10 +66,10 @@ namespace MediaBrowser.Api.HttpHandlers await Kernel.UserDataManager.OnPlaybackStopped(user, item, positionTicks, clientType, device).ConfigureAwait(false); } } - + var data = item.GetUserData(user, true); - return DtoBuilder.GetDtoUserItemData(data); + return new DtoBuilder(null).GetDtoUserItemData(data); } /// diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs index ee484b85d..585bfd45d 100644 --- a/MediaBrowser.Api/LibraryService.cs +++ b/MediaBrowser.Api/LibraryService.cs @@ -128,7 +128,7 @@ namespace MediaBrowser.Api // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = DtoBuilder.GetDtoBaseItem(item, fields.ToList()).Result; + var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList()).Result; return ToOptimizedResult(result); } @@ -147,7 +147,7 @@ namespace MediaBrowser.Api // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = DtoBuilder.GetDtoBaseItem(item, fields.ToList()).Result; + var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList()).Result; return ToOptimizedResult(result); } @@ -166,7 +166,7 @@ namespace MediaBrowser.Api // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = DtoBuilder.GetDtoBaseItem(item, fields.ToList()).Result; + var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList()).Result; return ToOptimizedResult(result); } @@ -185,7 +185,7 @@ namespace MediaBrowser.Api // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = DtoBuilder.GetDtoBaseItem(item, fields.ToList()).Result; + var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList()).Result; return ToOptimizedResult(result); } diff --git a/MediaBrowser.Api/Streaming/BaseHlsPlaylistHandler.cs b/MediaBrowser.Api/Streaming/BaseHlsPlaylistHandler.cs index 94a8f7926..5cb8b7e07 100644 --- a/MediaBrowser.Api/Streaming/BaseHlsPlaylistHandler.cs +++ b/MediaBrowser.Api/Streaming/BaseHlsPlaylistHandler.cs @@ -208,12 +208,12 @@ namespace MediaBrowser.Api.Streaming { try { - Logger.Info("Deleting HLS file {0}", file); + //Logger.Info("Deleting HLS file {0}", file); File.Delete(file); } catch (IOException ex) { - Logger.ErrorException("Error deleting HLS file {0}", ex, file); + //Logger.ErrorException("Error deleting HLS file {0}", ex, file); } } } diff --git a/MediaBrowser.Api/Streaming/BaseProgressiveStreamingHandler.cs b/MediaBrowser.Api/Streaming/BaseProgressiveStreamingHandler.cs index bce48e47b..91dab31d9 100644 --- a/MediaBrowser.Api/Streaming/BaseProgressiveStreamingHandler.cs +++ b/MediaBrowser.Api/Streaming/BaseProgressiveStreamingHandler.cs @@ -94,7 +94,7 @@ namespace MediaBrowser.Api.Streaming } catch (Exception ex) { - Logger.ErrorException("Error streaming media", ex); + //Logger.ErrorException("Error streaming media", ex); } finally { diff --git a/MediaBrowser.Api/Streaming/BaseStreamingHandler.cs b/MediaBrowser.Api/Streaming/BaseStreamingHandler.cs index 44a1ba10c..d800a40fe 100644 --- a/MediaBrowser.Api/Streaming/BaseStreamingHandler.cs +++ b/MediaBrowser.Api/Streaming/BaseStreamingHandler.cs @@ -889,7 +889,7 @@ namespace MediaBrowser.Api.Streaming Plugin.Instance.OnTranscodeBeginning(outputPath, TranscodingJobType, process); - Logger.Info(process.StartInfo.FileName + " " + process.StartInfo.Arguments); + //Logger.Info(process.StartInfo.FileName + " " + process.StartInfo.Arguments); var logFilePath = Path.Combine(Kernel.ApplicationPaths.LogDirectoryPath, "ffmpeg-" + Guid.NewGuid() + ".txt"); @@ -904,7 +904,7 @@ namespace MediaBrowser.Api.Streaming } catch (Win32Exception ex) { - Logger.ErrorException("Error starting ffmpeg", ex); + //Logger.ErrorException("Error starting ffmpeg", ex); Plugin.Instance.OnTranscodeFailedToStart(outputPath, TranscodingJobType); @@ -953,11 +953,11 @@ namespace MediaBrowser.Api.Streaming try { exitCode = process.ExitCode; - Logger.Info("FFMpeg exited with code {0} for {1}", exitCode.Value, outputFilePath); + //Logger.Info("FFMpeg exited with code {0} for {1}", exitCode.Value, outputFilePath); } catch { - Logger.Info("FFMpeg exited with an error for {0}", outputFilePath); + //Logger.Info("FFMpeg exited with an error for {0}", outputFilePath); } process.Dispose(); @@ -966,7 +966,7 @@ namespace MediaBrowser.Api.Streaming if (!exitCode.HasValue || exitCode.Value != 0) { - Logger.Info("Deleting partial stream file(s) {0}", outputFilePath); + //Logger.Info("Deleting partial stream file(s) {0}", outputFilePath); try { @@ -974,12 +974,12 @@ namespace MediaBrowser.Api.Streaming } catch (IOException ex) { - Logger.ErrorException("Error deleting partial stream file(s) {0}", ex, outputFilePath); + //Logger.ErrorException("Error deleting partial stream file(s) {0}", ex, outputFilePath); } } else { - Logger.Info("FFMpeg completed and exited normally for {0}", outputFilePath); + //Logger.Info("FFMpeg completed and exited normally for {0}", outputFilePath); } } diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs index 795bcda69..0c99b921a 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Logging; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; @@ -114,7 +115,7 @@ namespace MediaBrowser.Api.UserLibrary return null; } - var dto = await DtoBuilder.GetDtoBaseItem(item, user, fields).ConfigureAwait(false); + var dto = await new DtoBuilder(Logger).GetDtoBaseItem(item, user, fields).ConfigureAwait(false); dto.ChildCount = stub.Item2(); diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 166b2639a..3cc503184 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -191,7 +191,9 @@ namespace MediaBrowser.Api.UserLibrary var fields = GetItemFields(request).ToList(); - var returnItems = await Task.WhenAll(pagedItems.Select(i => DtoBuilder.GetDtoBaseItem(i, user, fields))).ConfigureAwait(false); + var dtoBuilder = new DtoBuilder(Logger); + + var returnItems = await Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetDtoBaseItem(i, user, fields))).ConfigureAwait(false); return new ItemsResult { diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index c5d7e471d..016b294ae 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -268,7 +268,9 @@ namespace MediaBrowser.Api.UserLibrary var movie = (Movie)item; - var items = movie.SpecialFeatures.Select(i => DtoBuilder.GetDtoBaseItem(item, user, fields)).AsParallel().Select(t => t.Result).ToList(); + var dtoBuilder = new DtoBuilder(Logger); + + var items = movie.SpecialFeatures.Select(i => dtoBuilder.GetDtoBaseItem(item, user, fields)).AsParallel().Select(t => t.Result).ToList(); return ToOptimizedResult(items); } @@ -284,7 +286,9 @@ namespace MediaBrowser.Api.UserLibrary // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); - var items = item.LocalTrailers.Select(i => DtoBuilder.GetDtoBaseItem(item, user, fields)).AsParallel().Select(t => t.Result).ToList(); + var dtoBuilder = new DtoBuilder(Logger); + + var items = item.LocalTrailers.Select(i => dtoBuilder.GetDtoBaseItem(item, user, fields)).AsParallel().Select(t => t.Result).ToList(); return ToOptimizedResult(items); } @@ -305,7 +309,9 @@ namespace MediaBrowser.Api.UserLibrary // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); - var result = DtoBuilder.GetDtoBaseItem(item, user, fields).Result; + var dtoBuilder = new DtoBuilder(Logger); + + var result = dtoBuilder.GetDtoBaseItem(item, user, fields).Result; return ToOptimizedResult(result); } diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs index 79f703e84..c4703a7a0 100644 --- a/MediaBrowser.Api/UserService.cs +++ b/MediaBrowser.Api/UserService.cs @@ -146,7 +146,9 @@ namespace MediaBrowser.Api { var kernel = (Kernel)Kernel; - var result = kernel.Users.OrderBy(u => u.Name).Select(DtoBuilder.GetDtoUser).ToList(); + var dtoBuilder = new DtoBuilder(Logger); + + var result = kernel.Users.OrderBy(u => u.Name).Select(dtoBuilder.GetDtoUser).ToList(); return ToOptimizedResult(result); } @@ -167,7 +169,7 @@ namespace MediaBrowser.Api throw new ResourceNotFoundException("User not found"); } - var result = DtoBuilder.GetDtoUser(user); + var result = new DtoBuilder(Logger).GetDtoUser(user); return ToOptimizedResult(result); } @@ -289,7 +291,7 @@ namespace MediaBrowser.Api var newUser = kernel.UserManager.CreateUser(dtoUser.Name).Result; - var result = DtoBuilder.GetDtoUser(newUser); + var result = new DtoBuilder(Logger).GetDtoUser(newUser); return ToOptimizedResult(result); } diff --git a/MediaBrowser.Common/IO/FileSystem.cs b/MediaBrowser.Common/IO/FileSystem.cs index fde46dd5b..3d65167bd 100644 --- a/MediaBrowser.Common/IO/FileSystem.cs +++ b/MediaBrowser.Common/IO/FileSystem.cs @@ -1,8 +1,7 @@ -using System.Collections.Specialized; -using MediaBrowser.Common.Logging; -using MediaBrowser.Common.Win32; +using MediaBrowser.Common.Win32; using System; using System.Collections.Generic; +using System.Collections.Specialized; using System.IO; using System.Runtime.InteropServices; using System.Text; diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index 2b2063b55..a4ac70749 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -9,9 +9,6 @@ using MediaBrowser.Common.Serialization; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Logging; using MediaBrowser.Model.System; -using NLog; -using NLog.Config; -using NLog.Targets; using System; using System.Collections.Generic; using System.ComponentModel.Composition; @@ -40,11 +37,6 @@ namespace MediaBrowser.Common.Kernel /// public event EventHandler HasPendingRestartChanged; - /// - /// Notifiies the containing application that a restart has been requested - /// - public event EventHandler ApplicationRestartRequested; - #region ConfigurationUpdated Event /// /// Occurs when [configuration updated]. @@ -341,6 +333,12 @@ namespace MediaBrowser.Common.Kernel /// The logger. protected ILogger Logger { get; private set; } + /// + /// Gets or sets the application host. + /// + /// The application host. + protected IApplicationHost ApplicationHost { get; private set; } + /// /// Gets the assemblies. /// @@ -350,10 +348,17 @@ namespace MediaBrowser.Common.Kernel /// /// Initializes a new instance of the class. /// + /// The app host. /// The iso manager. /// The logger. - protected BaseKernel(IIsoManager isoManager, ILogger logger) + /// isoManager + protected BaseKernel(IApplicationHost appHost, IIsoManager isoManager, ILogger logger) { + if (appHost == null) + { + throw new ArgumentNullException("appHost"); + } + if (isoManager == null) { throw new ArgumentNullException("isoManager"); @@ -363,7 +368,8 @@ namespace MediaBrowser.Common.Kernel { throw new ArgumentNullException("logger"); } - + + ApplicationHost = appHost; IsoManager = isoManager; Logger = logger; } @@ -440,42 +446,11 @@ namespace MediaBrowser.Common.Kernel /// public void ReloadLogger() { - DisposeLogger(); - - LogFilePath = Path.Combine(ApplicationPaths.LogDirectoryPath, KernelContext + "-" + DateTime.Now.Ticks + ".log"); - - var logFile = new FileTarget(); - - logFile.FileName = LogFilePath; - logFile.Layout = "${longdate}, ${level}, ${logger}, ${message}"; - - AddLogTarget(logFile, "ApplicationLogFile"); - + ApplicationHost.ReloadLogger(); + OnLoggerLoaded(); } - /// - /// Adds the log target. - /// - /// The target. - /// The name. - private void AddLogTarget(Target target, string name) - { - var config = LogManager.Configuration; - - config.RemoveTarget(name); - - target.Name = name; - config.AddTarget(name, target); - - var level = Configuration.EnableDebugLevelLogging ? LogLevel.Debug : LogLevel.Info; - - var rule = new LoggingRule("*", level, target); - config.LoggingRules.Add(rule); - - LogManager.Configuration = config; - } - /// /// Uses MEF to locate plugins /// Subclasses can use this to locate types within plugins @@ -588,7 +563,7 @@ namespace MediaBrowser.Common.Kernel foreach (var task in ScheduledTasks) { - task.Initialize(this); + task.Initialize(this, Logger); } // Start-up each plugin @@ -707,23 +682,6 @@ namespace MediaBrowser.Common.Kernel } } - /// - /// Disposes all logger resources - /// - private void DisposeLogger() - { - // Dispose all current loggers - var listeners = Trace.Listeners.OfType().ToList(); - - Trace.Listeners.Clear(); - - foreach (var listener in listeners) - { - listener.Dispose(); - } - - } - /// /// Gets the current application version /// @@ -759,7 +717,7 @@ namespace MediaBrowser.Common.Kernel { Logger.Info("Restarting the application"); - EventHelper.QueueEventIfNotNull(ApplicationRestartRequested, this, EventArgs.Empty, Logger); + ApplicationHost.Restart(); } /// diff --git a/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs b/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs index f431c5463..11ffa8d6c 100644 --- a/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs +++ b/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs @@ -1,12 +1,11 @@ -using MediaBrowser.Common.Logging; -using MediaBrowser.Common.Net; +using MediaBrowser.Common.Net; +using MediaBrowser.Model.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Model.Logging; namespace MediaBrowser.Common.Kernel { diff --git a/MediaBrowser.Common/Kernel/IApplicationHost.cs b/MediaBrowser.Common/Kernel/IApplicationHost.cs new file mode 100644 index 000000000..c1b63c261 --- /dev/null +++ b/MediaBrowser.Common/Kernel/IApplicationHost.cs @@ -0,0 +1,19 @@ + +namespace MediaBrowser.Common.Kernel +{ + /// + /// An interface to be implemented by the applications hosting a kernel + /// + public interface IApplicationHost + { + /// + /// Restarts this instance. + /// + void Restart(); + + /// + /// Reloads the logger. + /// + void ReloadLogger(); + } +} diff --git a/MediaBrowser.Common/Kernel/IKernel.cs b/MediaBrowser.Common/Kernel/IKernel.cs index 5358f3ab0..c0e650fc7 100644 --- a/MediaBrowser.Common/Kernel/IKernel.cs +++ b/MediaBrowser.Common/Kernel/IKernel.cs @@ -1,6 +1,4 @@ -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Net; -using MediaBrowser.Common.Net.Handlers; +using MediaBrowser.Common.Net; using MediaBrowser.Common.Plugins; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Common.Serialization; @@ -18,11 +16,6 @@ namespace MediaBrowser.Common.Kernel /// public interface IKernel { - /// - /// Occurs when [application restart requested]. - /// - event EventHandler ApplicationRestartRequested; - /// /// Gets the application paths. /// diff --git a/MediaBrowser.Common/Logging/LogHelper.cs b/MediaBrowser.Common/Logging/LogHelper.cs deleted file mode 100644 index 8b638a28e..000000000 --- a/MediaBrowser.Common/Logging/LogHelper.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Text; - -namespace MediaBrowser.Common.Logging -{ - /// - /// Class LogHelper - /// - public static class LogHelper - { - /// - /// Gets the log message. - /// - /// The exception. - /// StringBuilder. - public static StringBuilder GetLogMessage(Exception exception) - { - var messageText = new StringBuilder(); - - messageText.AppendLine(exception.Message); - - messageText.AppendLine(exception.GetType().FullName); - - LogExceptionData(messageText, exception); - - messageText.AppendLine(exception.StackTrace ?? "No Stack Trace Available"); - - // Log the InnerExceptions, if any - AppendInnerExceptions(messageText, exception); - - messageText.AppendLine(string.Empty); - - return messageText; - } - - /// - /// Appends the inner exceptions. - /// - /// The message text. - /// The e. - private static void AppendInnerExceptions(StringBuilder messageText, Exception e) - { - var aggregate = e as AggregateException; - - if (aggregate != null && aggregate.InnerExceptions != null) - { - foreach (var ex in aggregate.InnerExceptions) - { - AppendInnerException(messageText, ex); - } - } - - else if (e.InnerException != null) - { - AppendInnerException(messageText, e.InnerException); - } - } - - /// - /// Appends the inner exception. - /// - /// The message text. - /// The e. - private static void AppendInnerException(StringBuilder messageText, Exception e) - { - messageText.AppendLine("InnerException: " + e.GetType().FullName); - messageText.AppendLine(e.Message); - - LogExceptionData(messageText, e); - - if (e.StackTrace != null) - { - messageText.AppendLine(e.StackTrace); - } - } - - /// - /// Logs the exception data. - /// - /// The message text. - /// The e. - private static void LogExceptionData(StringBuilder messageText, Exception e) - { - foreach (var key in e.Data.Keys) - { - messageText.AppendLine(key + ": " + e.Data[key]); - } - } - } -} diff --git a/MediaBrowser.Common/Logging/LogManager.cs b/MediaBrowser.Common/Logging/LogManager.cs deleted file mode 100644 index 825f04440..000000000 --- a/MediaBrowser.Common/Logging/LogManager.cs +++ /dev/null @@ -1,20 +0,0 @@ -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Common.Logging -{ - /// - /// Class LogManager - /// - public static class LogManager - { - /// - /// Gets the logger. - /// - /// The name. - /// ILogger. - public static ILogger GetLogger(string name) - { - return new NLogger(name); - } - } -} diff --git a/MediaBrowser.Common/Logging/LogWindow.xaml b/MediaBrowser.Common/Logging/LogWindow.xaml deleted file mode 100644 index 726d3c968..000000000 --- a/MediaBrowser.Common/Logging/LogWindow.xaml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/MediaBrowser.Common/Logging/LogWindow.xaml.cs b/MediaBrowser.Common/Logging/LogWindow.xaml.cs deleted file mode 100644 index 3dc11db5b..000000000 --- a/MediaBrowser.Common/Logging/LogWindow.xaml.cs +++ /dev/null @@ -1,128 +0,0 @@ -using MediaBrowser.Common.Kernel; -using NLog; -using NLog.Config; -using NLog.Targets; -using System.ComponentModel; -using System.Threading; -using System.Threading.Tasks; -using System.Windows; - -namespace MediaBrowser.Common.Logging -{ - /// - /// Interaction logic for LogWindow.xaml - /// - public partial class LogWindow : Window - { - /// - /// The _ui thread - /// - private readonly TaskScheduler _uiThread; - /// - /// The _kernel - /// - private readonly IKernel _kernel; - - /// - /// Initializes a new instance of the class. - /// - /// The kernel. - public LogWindow(IKernel kernel) - { - InitializeComponent(); - _uiThread = TaskScheduler.FromCurrentSynchronizationContext(); - _kernel = kernel; - - Loaded += LogWindow_Loaded; - } - - /// - /// Handles the Loaded event of the LogWindow control. - /// - /// The source of the event. - /// The instance containing the event data. - void LogWindow_Loaded(object sender, RoutedEventArgs e) - { - var target = new TraceTarget - { - Layout = "${longdate}, ${level}, ${logger}, ${message}" - }; - - AddLogTarget(target, "LogWindowTraceTarget"); - } - - /// - /// Raises the event. - /// - /// A that contains the event data. - protected override void OnClosing(CancelEventArgs e) - { - base.OnClosing(e); - - RemoveLogTarget("LogWindowTraceTarget"); - } - - /// - /// Logs the message. - /// - /// The MSG. - public async void LogMessage(string msg) - { - await Task.Factory.StartNew(() => lbxLogData.Items.Insert(0, msg.TrimEnd('\n')), CancellationToken.None, TaskCreationOptions.None, _uiThread); - } - - /// - /// The log layout - /// - /// The log layout. - public string LogLayout - { - get { return "${longdate}, ${level}, ${logger}, ${message}"; } - } - - /// - /// Adds the log target. - /// - /// The target. - /// The name. - private void AddLogTarget(Target target, string name) - { - var config = NLog.LogManager.Configuration; - - config.RemoveTarget(name); - - target.Name = name; - config.AddTarget(name, target); - - var level = _kernel.Configuration.EnableDebugLevelLogging ? LogLevel.Debug : LogLevel.Info; - - var rule = new LoggingRule("*", level, target); - config.LoggingRules.Add(rule); - - NLog.LogManager.Configuration = config; - } - - /// - /// Removes the log target. - /// - /// The name. - private void RemoveLogTarget(string name) - { - var config = NLog.LogManager.Configuration; - - config.RemoveTarget(name); - - NLog.LogManager.Configuration = config; - } - - /// - /// Shuts down. - /// - public async void ShutDown() - { - await Task.Factory.StartNew(Close, CancellationToken.None, TaskCreationOptions.None, _uiThread); - } - - } - -} diff --git a/MediaBrowser.Common/Logging/NLogger.cs b/MediaBrowser.Common/Logging/NLogger.cs deleted file mode 100644 index 584c5616b..000000000 --- a/MediaBrowser.Common/Logging/NLogger.cs +++ /dev/null @@ -1,201 +0,0 @@ -using MediaBrowser.Model.Logging; -using System; -using System.Text; - -namespace MediaBrowser.Common.Logging -{ - /// - /// Class NLogger - /// - internal class NLogger : ILogger - { - /// - /// The _logger - /// - private readonly NLog.Logger _logger; - - /// - /// The _lock object - /// - private static readonly object LockObject = new object(); - - /// - /// Initializes a new instance of the class. - /// - /// The name. - public NLogger(string name) - { - lock (LockObject) - { - _logger = NLog.LogManager.GetLogger(name); - } - } - - /// - /// Infoes the specified message. - /// - /// The message. - /// The param list. - public void Info(string message, params object[] paramList) - { - _logger.Info(message, paramList); - } - - /// - /// Errors the specified message. - /// - /// The message. - /// The param list. - public void Error(string message, params object[] paramList) - { - _logger.Error(message, paramList); - } - - /// - /// Warns the specified message. - /// - /// The message. - /// The param list. - public void Warn(string message, params object[] paramList) - { - _logger.Warn(message, paramList); - } - - /// - /// Debugs the specified message. - /// - /// The message. - /// The param list. - public void Debug(string message, params object[] paramList) - { - _logger.Debug(message, paramList); - } - - /// - /// Logs the exception. - /// - /// The message. - /// The exception. - /// The param list. - /// - public void ErrorException(string message, Exception exception, params object[] paramList) - { - LogException(LogSeverity.Error, message, exception, paramList); - } - - /// - /// Logs the exception. - /// - /// The level. - /// The message. - /// The exception. - /// The param list. - private void LogException(LogSeverity level, string message, Exception exception, params object[] paramList) - { - message = FormatMessage(message, paramList).Replace(Environment.NewLine, ". "); - - var messageText = LogHelper.GetLogMessage(exception); - - LogMultiline(message, level, messageText); - } - - /// - /// Formats the message. - /// - /// The message. - /// The param list. - /// System.String. - private static string FormatMessage(string message, params object[] paramList) - { - if (paramList != null) - { - for (var i = 0; i < paramList.Length; i++) - { - message = message.Replace("{" + i + "}", paramList[i].ToString()); - } - } - - return message; - } - - /// - /// Logs the multiline. - /// - /// The message. - /// The severity. - /// Content of the additional. - public void LogMultiline(string message, LogSeverity severity, StringBuilder additionalContent) - { - additionalContent.Insert(0, message + Environment.NewLine); - - const char tabChar = '\t'; - - var text = additionalContent.ToString() - .Replace(Environment.NewLine, Environment.NewLine + tabChar) - .TrimEnd(tabChar); - - if (text.EndsWith(Environment.NewLine)) - { - text = text.Substring(0, text.LastIndexOf(Environment.NewLine, StringComparison.OrdinalIgnoreCase)); - } - - _logger.Log(GetLogLevel(severity), text); - } - - /// - /// Gets the log level. - /// - /// The severity. - /// NLog.LogLevel. - private NLog.LogLevel GetLogLevel(LogSeverity severity) - { - switch (severity) - { - case LogSeverity.Debug: - return NLog.LogLevel.Debug; - case LogSeverity.Error: - return NLog.LogLevel.Error; - case LogSeverity.Warn: - return NLog.LogLevel.Warn; - case LogSeverity.Fatal: - return NLog.LogLevel.Fatal; - case LogSeverity.Info: - return NLog.LogLevel.Info; - default: - throw new ArgumentException("Unknown LogSeverity: " + severity.ToString()); - } - } - - /// - /// Logs the specified severity. - /// - /// The severity. - /// The message. - /// The param list. - public void Log(LogSeverity severity, string message, params object[] paramList) - { - _logger.Log(GetLogLevel(severity), message, paramList); - } - - /// - /// Fatals the specified message. - /// - /// The message. - /// The param list. - public void Fatal(string message, params object[] paramList) - { - _logger.Fatal(message, paramList); - } - - /// - /// Fatals the exception. - /// - /// The message. - /// The exception. - /// The param list. - public void FatalException(string message, Exception exception, params object[] paramList) - { - LogException(LogSeverity.Fatal, message, exception, paramList); - } - } -} diff --git a/MediaBrowser.Common/Logging/WindowTraceListener.cs b/MediaBrowser.Common/Logging/WindowTraceListener.cs deleted file mode 100644 index 046dedf86..000000000 --- a/MediaBrowser.Common/Logging/WindowTraceListener.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System.Diagnostics; - -namespace MediaBrowser.Common.Logging -{ - /// - /// Class WindowTraceListener - /// - public class WindowTraceListener : DefaultTraceListener - { - /// - /// The _window - /// - private readonly LogWindow _window; - /// - /// Initializes a new instance of the class. - /// - /// The window. - public WindowTraceListener(LogWindow window) - { - _window = window; - _window.Show(); - Name = "MBLogWindow"; - } - - /// - /// Writes the value of the object's method to the listener you create when you implement the class. - /// - /// An whose fully qualified class name you want to write. - public override void Write(object o) - { - var str = o as string; - if (str != null) - Write(str); - else - base.Write(o); - } - - /// - /// Writes the output to the OutputDebugString function and to the method. - /// - /// The message to write to OutputDebugString and . - /// - /// - /// - /// - public override void Write(string message) - { - _window.LogMessage(message); - } - - /// - /// Writes the output to the OutputDebugString function and to the method, followed by a carriage return and line feed (\r\n). - /// - /// The message to write to OutputDebugString and . - /// - /// - /// - /// - public override void WriteLine(string message) - { - Write(message+"\n"); - } - - /// - /// Releases the unmanaged resources used by the and optionally releases the managed resources. - /// - /// true to release both managed and unmanaged resources; false to release only unmanaged resources. - protected override void Dispose(bool disposing) - { - if (_window != null) - _window.ShutDown(); - base.Dispose(disposing); - } - } -} diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj index b80cd8e84..b806df856 100644 --- a/MediaBrowser.Common/MediaBrowser.Common.csproj +++ b/MediaBrowser.Common/MediaBrowser.Common.csproj @@ -114,8 +114,6 @@ - - @@ -142,16 +140,10 @@ + - - - - LogWindow.xaml - - - @@ -201,7 +193,6 @@ - @@ -228,12 +219,6 @@ - - - Designer - MSBuild:Compile - - @@ -251,6 +236,7 @@ + + \ No newline at end of file diff --git a/MediaBrowser.Logging.NLog/NLogger.cs b/MediaBrowser.Logging.NLog/NLogger.cs new file mode 100644 index 000000000..b3aedbf7c --- /dev/null +++ b/MediaBrowser.Logging.NLog/NLogger.cs @@ -0,0 +1,201 @@ +using MediaBrowser.Model.Logging; +using System; +using System.Text; + +namespace MediaBrowser.Logging.Nlog +{ + /// + /// Class NLogger + /// + public class NLogger : ILogger + { + /// + /// The _logger + /// + private readonly NLog.Logger _logger; + + /// + /// The _lock object + /// + private static readonly object LockObject = new object(); + + /// + /// Initializes a new instance of the class. + /// + /// The name. + public NLogger(string name) + { + lock (LockObject) + { + _logger = NLog.LogManager.GetLogger(name); + } + } + + /// + /// Infoes the specified message. + /// + /// The message. + /// The param list. + public void Info(string message, params object[] paramList) + { + _logger.Info(message, paramList); + } + + /// + /// Errors the specified message. + /// + /// The message. + /// The param list. + public void Error(string message, params object[] paramList) + { + _logger.Error(message, paramList); + } + + /// + /// Warns the specified message. + /// + /// The message. + /// The param list. + public void Warn(string message, params object[] paramList) + { + _logger.Warn(message, paramList); + } + + /// + /// Debugs the specified message. + /// + /// The message. + /// The param list. + public void Debug(string message, params object[] paramList) + { + _logger.Debug(message, paramList); + } + + /// + /// Logs the exception. + /// + /// The message. + /// The exception. + /// The param list. + /// + public void ErrorException(string message, Exception exception, params object[] paramList) + { + LogException(LogSeverity.Error, message, exception, paramList); + } + + /// + /// Logs the exception. + /// + /// The level. + /// The message. + /// The exception. + /// The param list. + private void LogException(LogSeverity level, string message, Exception exception, params object[] paramList) + { + message = FormatMessage(message, paramList).Replace(Environment.NewLine, ". "); + + var messageText = LogHelper.GetLogMessage(exception); + + LogMultiline(message, level, messageText); + } + + /// + /// Formats the message. + /// + /// The message. + /// The param list. + /// System.String. + private static string FormatMessage(string message, params object[] paramList) + { + if (paramList != null) + { + for (var i = 0; i < paramList.Length; i++) + { + message = message.Replace("{" + i + "}", paramList[i].ToString()); + } + } + + return message; + } + + /// + /// Logs the multiline. + /// + /// The message. + /// The severity. + /// Content of the additional. + public void LogMultiline(string message, LogSeverity severity, StringBuilder additionalContent) + { + additionalContent.Insert(0, message + Environment.NewLine); + + const char tabChar = '\t'; + + var text = additionalContent.ToString() + .Replace(Environment.NewLine, Environment.NewLine + tabChar) + .TrimEnd(tabChar); + + if (text.EndsWith(Environment.NewLine)) + { + text = text.Substring(0, text.LastIndexOf(Environment.NewLine, StringComparison.OrdinalIgnoreCase)); + } + + _logger.Log(GetLogLevel(severity), text); + } + + /// + /// Gets the log level. + /// + /// The severity. + /// NLog.LogLevel. + private NLog.LogLevel GetLogLevel(LogSeverity severity) + { + switch (severity) + { + case LogSeverity.Debug: + return NLog.LogLevel.Debug; + case LogSeverity.Error: + return NLog.LogLevel.Error; + case LogSeverity.Warn: + return NLog.LogLevel.Warn; + case LogSeverity.Fatal: + return NLog.LogLevel.Fatal; + case LogSeverity.Info: + return NLog.LogLevel.Info; + default: + throw new ArgumentException("Unknown LogSeverity: " + severity.ToString()); + } + } + + /// + /// Logs the specified severity. + /// + /// The severity. + /// The message. + /// The param list. + public void Log(LogSeverity severity, string message, params object[] paramList) + { + _logger.Log(GetLogLevel(severity), message, paramList); + } + + /// + /// Fatals the specified message. + /// + /// The message. + /// The param list. + public void Fatal(string message, params object[] paramList) + { + _logger.Fatal(message, paramList); + } + + /// + /// Fatals the exception. + /// + /// The message. + /// The exception. + /// The param list. + public void FatalException(string message, Exception exception, params object[] paramList) + { + LogException(LogSeverity.Fatal, message, exception, paramList); + } + } +} diff --git a/MediaBrowser.Logging.NLog/NlogManager.cs b/MediaBrowser.Logging.NLog/NlogManager.cs new file mode 100644 index 000000000..4d6aeadd8 --- /dev/null +++ b/MediaBrowser.Logging.NLog/NlogManager.cs @@ -0,0 +1,50 @@ +using NLog; +using NLog.Config; +using NLog.Targets; + +namespace MediaBrowser.Logging.Nlog +{ + /// + /// Class NlogManager + /// + public static class NlogManager + { + /// + /// Adds the file target. + /// + /// The path. + /// if set to true [enable debug logging]. + public static void AddFileTarget(string path, bool enableDebugLogging) + { + var logFile = new FileTarget(); + + logFile.FileName = path; + logFile.Layout = "${longdate}, ${level}, ${logger}, ${message}"; + + AddLogTarget(logFile, "ApplicationLogFile", enableDebugLogging); + } + + /// + /// Adds the log target. + /// + /// The target. + /// The name. + /// if set to true [enable debug logging]. + private static void AddLogTarget(Target target, string name, bool enableDebugLogging) + { + var config = LogManager.Configuration; + + config.RemoveTarget(name); + + target.Name = name; + config.AddTarget(name, target); + + var level = enableDebugLogging ? LogLevel.Debug : LogLevel.Info; + + var rule = new LoggingRule("*", level, target); + config.LoggingRules.Add(rule); + + LogManager.Configuration = config; + } + } +} diff --git a/MediaBrowser.Logging.NLog/Properties/AssemblyInfo.cs b/MediaBrowser.Logging.NLog/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..35e100281 --- /dev/null +++ b/MediaBrowser.Logging.NLog/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MediaBrowser.Logging.NLog")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MediaBrowser.Logging.NLog")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("095763bf-68a9-4d89-ad01-d0e3c1f5c11f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/MediaBrowser.Logging.NLog/packages.config b/MediaBrowser.Logging.NLog/packages.config new file mode 100644 index 000000000..ede36938c --- /dev/null +++ b/MediaBrowser.Logging.NLog/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/MediaBrowser.Plugins.MpcHc/MpcHcMediaPlayer.cs b/MediaBrowser.Plugins.MpcHc/MpcHcMediaPlayer.cs index baad046dd..e2d5398e4 100644 --- a/MediaBrowser.Plugins.MpcHc/MpcHcMediaPlayer.cs +++ b/MediaBrowser.Plugins.MpcHc/MpcHcMediaPlayer.cs @@ -1,6 +1,6 @@ -using MediaBrowser.Common.Logging; -using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Logging; using MediaBrowser.UI.Configuration; using MediaBrowser.UI.Controller; using MediaBrowser.UI.Playback; @@ -32,6 +32,12 @@ namespace MediaBrowser.Plugins.MpcHc /// private SemaphoreSlim MpcHttpInterfaceResourcePool = new SemaphoreSlim(1, 1); + [ImportingConstructor] + public MpcHcMediaPlayer([Import("logger")] ILogger logger) + : base(logger) + { + } + /// /// Gets or sets the HTTP interface cancellation token. /// diff --git a/MediaBrowser.Plugins.Tmt5/Tmt5MediaPlayer.cs b/MediaBrowser.Plugins.Tmt5/Tmt5MediaPlayer.cs index fc6b4e37f..2643eaa44 100644 --- a/MediaBrowser.Plugins.Tmt5/Tmt5MediaPlayer.cs +++ b/MediaBrowser.Plugins.Tmt5/Tmt5MediaPlayer.cs @@ -1,6 +1,6 @@ using MediaBrowser.Common.IO; -using MediaBrowser.Common.Logging; using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Logging; using MediaBrowser.UI.Configuration; using MediaBrowser.UI.Playback; using MediaBrowser.UI.Playback.ExternalPlayer; @@ -21,6 +21,12 @@ namespace MediaBrowser.Plugins.Tmt5 [Export(typeof(BaseMediaPlayer))] public class Tmt5MediaPlayer : BaseExternalPlayer { + [ImportingConstructor] + public Tmt5MediaPlayer([Import("logger")] ILogger logger) + : base(logger) + { + } + /// /// Gets the name. /// diff --git a/MediaBrowser.Server.Sqlite/SQLiteRepository.cs b/MediaBrowser.Server.Sqlite/SQLiteRepository.cs index 09484d68e..1caae970e 100644 --- a/MediaBrowser.Server.Sqlite/SQLiteRepository.cs +++ b/MediaBrowser.Server.Sqlite/SQLiteRepository.cs @@ -1,4 +1,3 @@ -using MediaBrowser.Common.Logging; using MediaBrowser.Model.Logging; using System; using System.Collections.Concurrent; diff --git a/MediaBrowser.Server.Uninstall/MediaBrowser.Server.Uninstall.csproj b/MediaBrowser.Server.Uninstall/MediaBrowser.Server.Uninstall.csproj index bce0138af..3c51ce6a2 100644 --- a/MediaBrowser.Server.Uninstall/MediaBrowser.Server.Uninstall.csproj +++ b/MediaBrowser.Server.Uninstall/MediaBrowser.Server.Uninstall.csproj @@ -44,9 +44,6 @@ - - ClickOnceHelper.cs - @@ -54,6 +51,12 @@ + + + {9142eefa-7570-41e1-bfcc-468bb571af2f} + MediaBrowser.Common + +