hauleth

hauleth

Lumberjack - log viewer for Elixir and Erlang

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
  • Search in the webUI
  • Maybe add persistence to webUI
  • Fix bugs and make the FS source more robust

Most Liked

hauleth

hauleth

Someone created topic Structured logging on localhost which give me some energy to revive it a little.

For now on master there is version with updated version dependency for file_system which allows it to build with new Phoenix releases.

Also I am working on colours that will be a little bit more readable as well as with adding colouring to metadata view.

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.

hauleth

hauleth

Added few new features:

  • Hide source by default, as most of the users will probably use only one source so it is needless clutter
  • Light and dark theme support
  • Messages on critical and above levels are now on highlighted background

outlog

outlog

looking great! - could also be of great use on a Nerves device outputting the Ringlogger…

hauleth

hauleth

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.

D4no0

D4no0

Very nice, thanks for updating it!

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.

Where Next?

Popular in Libraries Top

marcuslankenau
I feel kind of stuck with the absence of a proper xml library for Elixir. Currently I use SweetXML which was ok for me more or less to pa...
New
deadtrickster
I’ve just released stable versions of my Prometheus Elixir libs: Elixir client [docs]; Ecto collector [docs]; Plugs instrumenter/Export...
New
archan937
It is a well-know topic within the Elixir community: “To mock or not to mock? :)” Every alchemist probably has his / her own opinion con...
New
dbern
I’m excited to announce that TaxJar has developed and open-sourced DateTimeParser. We developed it because we found a need to parse user ...
New
riverrun
I’ve just released version 3 of Comeonin, a password hashing library. The following small changes have been made: changes to the NIF c...
New
MRdotB
I needed to reuse React components from my Chrome extension in my Phoenix/LiveView backend. I noticed that for Svelte/Vue, there are live...
New
wmnnd
Hi there, for my project DBLSQD, I needed a file storage solution that is a bit more flexible than Arc. Because I thought others might f...
New
bryanjos
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New
gjaldon
As the title states, EctoEnum has just been updated after some time of hardly any activity in the repo. Here’s the latest release: https:...
New
mischov
import Meeseeks.CSS html = HTTPoison.get!("https://news.ycombinator.com/").body for story <- Meeseeks.all(html, css("tr.athing")) do...
New

Other popular topics Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 45766 226
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New

Sub Categories:

We're in Beta

About us Mission Statement