Introducing Fernsprecher for IntelliJ IDEs

Fernsprecher is a plugin for IntelliJ based IDEs by JetBrains like Meta Programming System (MPS) that makes it easy to read IDE logs in the browser.


Why?

A very helpful tool when developing languages with MPS are the logs because they often give you valuable information why something isn't working. Many parts of the MPS Extensions, the open source components developed by the community that make language development easier, and also MPS itself use the integrated logs of the IDE extensively. Many language developers will therefor want to have the logs available, which they do on Windows by modifying the start up script or on other operating systems by starting the IDE from the command line. Especially on Windows the experience isn't the best with the terminal being quite basic. There are other options like reading the log files with specialized tools as Jennek described in his blog post: Using Apache Chainsaw to view the MPS log. While all of this helps and is used by many people I wanted to make it easier to get access to the logs without external tools or configuration. That's how the idea for Fernsprecher was born.

What is Fernsprecher?

Fernsprecher is a plugin for any IntelliJ based IDEs like MPS, IntelliJ, WebStorm, etc. It uses the build in Web Server of the IDE to serve logs into your browser. The build in Web Server comes with every IntelliJ IDE and is apart from many more the thing that powers the "open in browser" Action when you are editing HTML files. It's also used for other things like RPC or serving documentation for the IDE. Plugins can add new functionality to the web server by adding their own endpoints and Fernsprecher is exactly doing that:

Fernsprecher Preview Screenshot

Since Fernsprecher is using the integrated logging APIs of the IDE it will automatically respect your logging settings no matter if you modified them via the log.xml file or by using "Help -> Diagnostic Tools -> Debug Log Settings ...".

What's this name "Fernsprecher"? It's pretty old German word for Telephone and it's literal translation would be far speaker.

Where to get Fernsprecher?

The plugin is available on the JetBrains Marketplace. Just head over to the  Marketplace on the web and click "Install to IDE" to install it right from the browser. By the way that button the web site is also using the build in web server to tell your IDE which plugin to install 😎. Alternatively search from your IDEs plugin setting for "Fernsprecher". If your IDE is recent enough you don't even need to restart it to activate the plugin. Compatibility wise the plugin will work with anything newer than the 2019.3 release, except for MPS where the first supported version in 2020.1 because MPS 2019.3 ships with an older version of the IntelliJ platform and isn't compatible with the plugin.

If you don't want to or can't use the Marketplace the plugin is open source and the releases are also available on Github. You can download the ZIP file and install it into your IDE manually via the Plugin Settings: click the gear symbol next to Marketplace and Installed then select "Install Plugin from Disk" and navigate to the downloaded file.

install via Settings
Install via Settings

After it's installed the logs are accessible via "Tools -> View Logs in the Browser" which will point your browser to the correct location and then send all the logs into your browser in real time. The browser part will automatically reconnect incase you restart your IDE or the connection is otherwise interrupted. The little icon in the top left corner turns into a green checkmark once the connection is established.

If you encounter any problems using the plugin or you have feature ideas post them at the Github repository where you can also get involved coding if you like. Or you can become a sponsor with the recently introduced Github Sponsors. 😁