From 1923de72bf3c502ba9b942ef6caa5f73a33f43d6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 23 Nov 2014 17:36:40 -0500 Subject: consolidate exception logging --- .../UnhandledExceptionWriter.cs | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 MediaBrowser.Server.Startup.Common/UnhandledExceptionWriter.cs (limited to 'MediaBrowser.Server.Startup.Common/UnhandledExceptionWriter.cs') 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()); + } + } +} -- cgit v1.2.3