Logging
IntelliJ 平台使用 Logger 抽象类来屏蔽底层日志记录实现和配置。
插件应该获得一个专用实例:
import com.intellij.openapi.diagnostic.Logger;
public class MyPluginClass {
private static final Logger LOG = Logger.getInstance(MyPluginClass.class);
public void someMethod() {
LOG.info("someMethod() was called");
}
}
默认情况下,所有具有 INFO 和更高级别的消息都写入日志输出文件 idea.log
。
要为特定类别启用 DEBUG/TRACE 日志记录,请使用帮助 | 诊断工具 | 调试日志设置。 |
要找到日志文件,请选择帮助 | 显示登录 Finder/Explorer 操作。 启用内部模式后,可以使用 Help | 打开当前运行的 IDE 日志文件。 在编辑器中打开登录。 |
要为特定安装找到它,请参阅此知识库文章。 有关如何为开发实例找到它的信息,请参阅开发实例沙箱目录。
请参阅测试常见问题解答,了解如何在测试期间启用 DEBUG/TRACE 级别的日志记录,并获取失败测试的单独日志。
要为报告致命错误提供额外的上下文,请使用 Logger.error() 方法获取额外的附件(请参阅 AttachmentFactory)。
错误报告
IDE 将显示自己捕获的致命错误,并在 IDE 致命错误对话框中记录具有 ERROR 级别的消息:
对于 IDE 平台:在 EAP 版本中或在内部模式下运行时
对于第三方插件:总是
对于后者,默认情况下禁用报告 - 相反,有一个选项可以禁用导致异常的插件。
为了让用户向供应商报告此类错误,插件可以实现在 com.intellij.errorHandler 扩展点中注册的自定义 ErrorReportSubmitter。
请参阅 IntelliJ Platform Explorer 以了解现有的实现——从预填充基于 Web 的问题跟踪器表单到全自动提交到日志监控系统。 本教程还提供了使用哨兵的工作解决方案。
要禁用状态栏中的红色感叹号通知图标,请调用帮助 | 编辑自定义属性…并在打开的 idea.properties 中添加 idea.fatal.error.notification=disabled。 |
运行时信息
ApplicationInfo 提供有关 IDE 版本和供应商的信息。 注意:要限制兼容性,请通过 plugin.xml 声明 IDE 和版本。
要获取有关操作系统和 Java VM 的信息,请使用 SystemInfo。
要访问相关配置目录,请参阅 PathManager。
要获取唯一的安装 UUID,请使用 PermanentInstallationID。
上下文帮助
要显示插件功能的自定义上下文基于 Web 的帮助(例如,用于对话框),请提供在 com.intellij.webHelpProvider 扩展点中注册的 WebHelpProvider。
一次运行任务
使用 RunOnceUtil 为每个项目/应用程序运行一次任务。
应用事件
可以通过 AppLifecycleListener 侦听器跟踪应用程序生命周期事件。 另请参阅应用程序启动和项目和应用程序关闭。
注册 ApplicationActivationListener 侦听器以接收“应用程序聚焦/未聚焦”事件的通知。
要请求重新启动 IDE,请使用 Application.restart()
省电模式
文件 | 可以启用省电模式以限制笔记本电脑上的耗电功能。 |
使用 PowerSaveMode 服务和 PowerSaveMode.Listener 主题相应地禁用插件中的此类功能。
插件管理
可以通过 PluginManagerCore.isPluginInstalled() 检查已安装的插件。
插件建议
对于特定功能(例如,文件类型、Facet 等),IDE 会建议自动安装匹配的插件。 有关详细信息,请参阅 Marketplace 文档中的插件推荐。
要建议其他相关插件,请使用 PluginsAdvertiser.installAndEnable()。
弃用插件
要建议用新插件替换当前安装的已弃用插件,请实施在 com.intellij.pluginReplacement 扩展点中注册的 PluginReplacement。
参考资料
https://plugins.jetbrains.com/docs/intellij/ide-infrastructure.html#context-help