Last updated 09 March 2020
Heroku’s Logplex router is responsible for collating and distributing the log entries generated by your app and other components of the Heroku platform. It makes these entries available through the Logplex public API and the Heroku command-line tool.
In a distributed system such as Heroku, manually accessing logs spread across many dynos provides a very disjointed view of an application’s event stream and omits relevant platform-level events. The Logplex facility solves these issues in an accessible and extensible manner.
Private Space Logging does not use Logplex.
Sources and drains
Logplex routes messages from sources to drains.
Log sources are any processes that might want to emit log entries relevant to your app. Some examples: your
webdynos, the Heroku platform, the Heroku routing stack, and many add-ons.
Log drains are any network services that want to consume your app’s logs, either for automatic processing, archival, or human consumption. Examples include the Heroku command-line tool and several log-processing and management add-ons.
Logplex is a high-performance, real-time system for log delivery – not storage. It keeps a limited buffer of log entries.
Logplex interacts directly with various external tools and services, and requires prompt action for real-time processing. If one of these services has trouble keeping up, Logplex may be forced to discard log entries for some time. If this happens, it will insert a warning entry to indicate that some entries are missing.
The Logplex router resides in Heroku’s
us region. Consequently, an app’s logs pass through infrastructure in the United States, regardless of which region the app itself resides in.