123456789101112131415161718192021222324252627282930313233343536373839 |
- 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());
- }
- }
- }
|