I have created simple log viewer for your applications. It is not yet published on Hex as it still needs a little bit polishing and documentation, but I thought that it can be interesting for some of you.
Example of web UI:
Repo:
While this has some common ground with upcoming Phoenix Dashboard there are some crucial differences:
This one do not require Phoenix at all. It is implemented in pure Plug and uses SSE instead of web sockets
This focus only on logs, without any other stuff
This allows to show logs from different places as well. Currently supported sources are:
Erlang logger (which is also used by Elixir Logger)
Socket (for now UDP only)
Filesystem (quite buggy, but in progress)
The external sources can be useful for example if you want to check out logs of your DB together with your application logs for quicker bughunt or performance monitoring.
For now it do not show metadata anywhere, but the plan is to have a way to view more informations about that log message.
Future improvements:
Filters for removing unneeded messages from external sources
Parsers to extract informations from the external log sources
I think I could work on migrating RingLogger to the Erlang Logger and then it indeed would be nice to have, as this would allow me to have persistence layer within the application.
In addition to that I am planning on adding limiter that will drop old DOM nodes if there is more than N entries to reduce memory consumption when there is a lot of logs.
I am also planning on dropping plug_cowboy dependency and instead force the user to setup HTTP server when needed.
Lately reading error messages from phoenix has become a pretty substantial problem for me. This solution might provide the perfect experience for dev environments where you don’t want to run a series of log collection and processing services.
I feel a little stupid, but what do I need to do to make it work? I have added it to my dependencies and I have updated my config with the sources. Should that be enough, or do I need to do any additional steps? Where can I see the UI in your screenshots?