diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json index 84494f8bd7..45dab6a571 100644 --- a/MediaBrowser.Server.Implementations/Localization/Server/server.json +++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json @@ -1,10 +1,11 @@ { "LabelExit": "Exit", "LabelVisitCommunity": "Visit Community", - "LabelGithubWiki": "Github Wiki", + "LabelGithub": "Github", "LabelSwagger": "Swagger", "LabelStandard": "Standard", - "LabelViewApiDocumentation": "View Api Documentation", + "LabelApiDocumentation": "Api Documentation", + "LabelDeveloperResources": "Developer Resources", "LabelBrowseLibrary": "Browse Library", "LabelConfigureMediaBrowser": "Configure Media Browser", "LabelOpenLibraryViewer": "Open Library Viewer", diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs index 8a34488c62..2fb9838508 100644 --- a/MediaBrowser.Server.Mono/Program.cs +++ b/MediaBrowser.Server.Mono/Program.cs @@ -7,7 +7,6 @@ using MediaBrowser.Server.Startup.Common; using Microsoft.Win32; using System; using System.Diagnostics; -using System.IO; using System.Net; using System.Net.Security; using System.Reflection; @@ -124,7 +123,7 @@ namespace MediaBrowser.Server.Mono { var exception = (Exception)e.ExceptionObject; - LogUnhandledException(exception); + new UnhandledExceptionWriter(_appHost.ServerConfigurationManager.ApplicationPaths, _logger, _appHost.LogManager).Log(exception); if (!Debugger.IsAttached) { @@ -132,22 +131,6 @@ namespace MediaBrowser.Server.Mono } } - private static void LogUnhandledException(Exception ex) - { - _logger.ErrorException("UnhandledException", ex); - - _appHost.LogManager.Flush (); - - var path = Path.Combine(_appHost.ServerConfigurationManager.ApplicationPaths.LogDirectoryPath, "crash_" + Guid.NewGuid() + ".txt"); - - var builder = LogHelper.GetLogMessage(ex); - - Console.WriteLine ("UnhandledException"); - Console.WriteLine (builder.ToString()); - - File.WriteAllText(path, builder.ToString()); - } - public static void Shutdown() { ApplicationTaskCompletionSource.SetResult (true); diff --git a/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj b/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj index 474dadfe28..46a7710272 100644 --- a/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj +++ b/MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj @@ -70,6 +70,7 @@ + diff --git a/MediaBrowser.Server.Startup.Common/UnhandledExceptionWriter.cs b/MediaBrowser.Server.Startup.Common/UnhandledExceptionWriter.cs new file mode 100644 index 0000000000..96c24eaabf --- /dev/null +++ b/MediaBrowser.Server.Startup.Common/UnhandledExceptionWriter.cs @@ -0,0 +1,39 @@ +using MediaBrowser.Common.Configuration; +using MediaBrowser.Common.Implementations.Logging; +using MediaBrowser.Model.Logging; +using System; +using System.IO; + +namespace MediaBrowser.Server.Startup.Common +{ + public class UnhandledExceptionWriter + { + private readonly IApplicationPaths _appPaths; + private readonly ILogger _logger; + private readonly ILogManager _logManager; + + public UnhandledExceptionWriter(IApplicationPaths appPaths, ILogger logger, ILogManager logManager) + { + _appPaths = appPaths; + _logger = logger; + _logManager = logManager; + } + + public void Log(Exception ex) + { + _logger.ErrorException("UnhandledException", ex); + _logManager.Flush(); + + var path = Path.Combine(_appPaths.LogDirectoryPath, "unhandled_" + Guid.NewGuid() + ".txt"); + Directory.CreateDirectory(Path.GetDirectoryName(path)); + + var builder = LogHelper.GetLogMessage(ex); + + // Write to console just in case file logging fails + Console.WriteLine("UnhandledException"); + Console.WriteLine(builder.ToString()); + + File.WriteAllText(path, builder.ToString()); + } + } +} diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index d98f3e2651..8974ca8da6 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -455,9 +455,7 @@ namespace MediaBrowser.ServerApplication { var exception = (Exception)e.ExceptionObject; - LogUnhandledException(exception); - - _appHost.LogManager.Flush(); + new UnhandledExceptionWriter(_appHost.ServerConfigurationManager.ApplicationPaths, _logger, _appHost.LogManager).Log(exception); if (!_isRunningAsService) { @@ -470,18 +468,6 @@ namespace MediaBrowser.ServerApplication } } - private static void LogUnhandledException(Exception ex) - { - _logger.ErrorException("UnhandledException", ex); - - var path = Path.Combine(_appHost.ServerConfigurationManager.ApplicationPaths.LogDirectoryPath, "unhandled_" + Guid.NewGuid() + ".txt"); - Directory.CreateDirectory(Path.GetDirectoryName(path)); - - var builder = LogHelper.GetLogMessage(ex); - - File.WriteAllText(path, builder.ToString()); - } - /// /// Performs the update if needed. /// diff --git a/MediaBrowser.ServerApplication/ServerNotifyIcon.cs b/MediaBrowser.ServerApplication/ServerNotifyIcon.cs index 6e13bb791c..e3e1359d9a 100644 --- a/MediaBrowser.ServerApplication/ServerNotifyIcon.cs +++ b/MediaBrowser.ServerApplication/ServerNotifyIcon.cs @@ -174,9 +174,9 @@ namespace MediaBrowser.ServerApplication cmdExit.Text = _localization.GetLocalizedString("LabelExit"); cmdCommunity.Text = _localization.GetLocalizedString("LabelVisitCommunity"); - cmdGtihub.Text = _localization.GetLocalizedString("LabelGithubWiki"); - cmdSwagger.Text = _localization.GetLocalizedString("LabelSwagger"); - cmdApiDocs.Text = _localization.GetLocalizedString("LabelViewApiDocumentation"); + cmdGtihub.Text = _localization.GetLocalizedString("LabelGithub"); + cmdSwagger.Text = _localization.GetLocalizedString("LabelApiDocumentation"); + cmdApiDocs.Text = _localization.GetLocalizedString("LabelDeveloperResources"); cmdBrowse.Text = _localization.GetLocalizedString("LabelBrowseLibrary"); cmdConfigure.Text = _localization.GetLocalizedString("LabelConfigureMediaBrowser"); cmdRestart.Text = _localization.GetLocalizedString("LabelRestartServer");