diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-11-11 15:37:53 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-11-11 15:37:53 -0500 |
| commit | b4c6cad2fa9256c4af83752a34679d2533c96b11 (patch) | |
| tree | 43e25b4ed64a535823e21128ee74f3e0a1245069 /Emby.Server.Core/UnhandledExceptionWriter.cs | |
| parent | 00316bc8ca9791f2ad68e84e29f2fbc6b1af2173 (diff) | |
| parent | 2b19df9544315603673ff034e8fd621cf0b85a4b (diff) | |
Merge pull request #2281 from MediaBrowser/dev
Dev
Diffstat (limited to 'Emby.Server.Core/UnhandledExceptionWriter.cs')
| -rw-r--r-- | Emby.Server.Core/UnhandledExceptionWriter.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Emby.Server.Core/UnhandledExceptionWriter.cs b/Emby.Server.Core/UnhandledExceptionWriter.cs new file mode 100644 index 0000000000..5147be9e7c --- /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()); + } + } +} |
