diff options
Diffstat (limited to 'Emby.Server.Core')
| -rw-r--r-- | Emby.Server.Core/UnhandledExceptionWriter.cs | 38 | ||||
| -rw-r--r-- | Emby.Server.Core/project.json | 2 |
2 files changed, 39 insertions, 1 deletions
diff --git a/Emby.Server.Core/UnhandledExceptionWriter.cs b/Emby.Server.Core/UnhandledExceptionWriter.cs new file mode 100644 index 000000000..5147be9e7 --- /dev/null +++ b/Emby.Server.Core/UnhandledExceptionWriter.cs @@ -0,0 +1,38 @@ +using MediaBrowser.Common.Configuration; +using MediaBrowser.Model.Logging; +using System; +using System.IO; + +namespace Emby.Server.Core +{ + 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/Emby.Server.Core/project.json b/Emby.Server.Core/project.json index 41f29ca47..ae3ff5203 100644 --- a/Emby.Server.Core/project.json +++ b/Emby.Server.Core/project.json @@ -8,7 +8,7 @@ "frameworks": { "net46": { "frameworkAssemblies": { - + "System.Runtime": "4.0.0" }, "dependencies": { "MediaBrowser.Model": { |
