void (@Nullable Throwable t) { myLogger.severe(ourApplicationInfoProvider.get()); Properties properties = System.getProperties(); myLogger.severe("JDK: " + properties.getProperty("java.version", "unknown") + "; VM: " + properties.getProperty("java.vm.name", "unknown") + "; Vendor: " + properties.getProperty("java.vendor", "unknown")); myLogger.severe("OS: " + properties.getProperty("os.name", "unknown")); // do not use getInstance here - container maybe already disposed if (t != null && PluginManagerCore.arePluginsInitialized()) { IdeaPluginDescriptor plugin = PluginManagerCore.getPlugin(PluginUtilImpl.doFindPluginId(t)); if (plugin != null && (!plugin.isBundled() || plugin.allowBundledUpdate())) { myLogger.severe("Plugin to blame: " + plugin.getName() + " version: " + plugin.getVersion()); } } ApplicationEx application = ApplicationManagerEx.getApplicationEx(); if (application != null && application.isComponentCreated() && !application.isDisposed()) { String lastPreformedActionId = ourLastActionId; if (lastPreformedActionId != null) { myLogger.severe("Last Action: " + lastPreformedActionId); } CommandProcessor commandProcessor = application.getServiceIfCreated(CommandProcessor.class); if (commandProcessor != null) { String currentCommandName = commandProcessor.getCurrentCommandName(); if (currentCommandName != null) { myLogger.severe("Current Command: " + currentCommandName); } } } }