Any Sentry SDK
Paste the DSN and you are done: Ruby, JS, Python, Java, .NET, PHP, Go. meulog speaks the protocol they already speak.
Seven doors, and none requires another. The cheapest is the one you already have: if your application reports to Sentry, changing the DSN is the whole integration.
Paste the DSN and you are done: Ruby, JS, Python, Java, .NET, PHP, Go. meulog speaks the protocol they already speak.
Delphi, Flutter, Ruby on Rails and the browser. Error with stack, what the person did before it broke, the heartbeat of a nightly job, how long an operation took, and the version that shipped.
Whatever arrives carrying an error: a bug report, a plain-text alert, JSON, or a line matched by a regular expression you write.
A desktop crash reporter posts the report over HTTP with no code in the application — it is a setting, not a build. meulog speaks the madExcept one, and the endpoint is a single URL.
NDJSON from Vector, Fluent Bit or Filebeat: whatever passes the level becomes an occurrence.
The browser sends it on its own, with no SDK and no token.
Logs and duration histograms, through the Collector.
For whoever has no SDK and does not want one. One error or a batch, with a server token.
They are the only door that sends what the error does not say. Four of them, none with a third-party dependency.
Native, with no third-party dependency: Windows XE2 to 12 and Linux. The stack is captured at the raise, the queue survives a machine with no network, and the crash that kills the process still arrives.
The three doors an exception leaves Flutter through, wired at once: the framework, a Future nobody awaited, and the platform isolate.
A gem with a Railtie: two environment variables and the middleware is on. Nothing else to write.
One file, no build step. It catches what reaches the top of the page and what a promise dropped.