22 comments

  • guessmyname11 hours ago
    Oh yeah! lnav is famous. I remember using it like a decade ago to monitor an array of web servers while at GoDaddy; good ol&#x27; times.<p>First commit is from Sep 13, 2009: <a href="https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav&#x2F;commit&#x2F;b4ec432515e95e86ec9d711833b8cb34d0912546" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav&#x2F;commit&#x2F;b4ec432515e95e86ec9d71...</a> . Woah! we’re old.<p>This is what the UX looked like back in the day: <a href="https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav&#x2F;commit&#x2F;bce2caa654160518ec11f603874e3fe105ab8992" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav&#x2F;commit&#x2F;bce2caa654160518ec11f6...</a>
    • packetlost2 hours ago
      Aside from the bitmap font, this looks pretty much the same as it does now lol<p>I&#x27;ll also add I used lnav more recently for viewing logs from many small lab devices centralized via syslog, it was extremely lightweight and effective.
    • boomskats9 hours ago
      Wow, the GitHub mobile app doesn&#x27;t preview PNGs. TIL
      • stronglikedan2 hours ago
        I&#x27;m not seeing them on Chrome on Windows either, but FF works for me.
      • ifh-hn8 hours ago
        GitHub website does on mobile.
        • port114 hours ago
          GitHub mobile requires login, sadly.
  • vdm4 hours ago
    <a href="https:&#x2F;&#x2F;mpryor.github.io&#x2F;nothing-less&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mpryor.github.io&#x2F;nothing-less&#x2F;</a>
  • vzaliva2 hours ago
    So, I started it and was doing something but there is no obvious way to exit. I tried Q,q, Ecc, :q. I tried `man lnav` in separate terminal - but no man page is provided. `ps` shows 3 processes which would not die with SIGTERM, have to `kill -9`. But nice web site :)
    • tstack1 hour ago
      Oof, sorry you had such a bad experience.<p>&gt; but there is no obvious way to exit. I tried Q,q<p>It&#x27;s not very responsive during initial indexing, which is something I need to improve. Pressing `q` should work to exit in general, though. Pressing CTRL-C three times in quick succession will force quit it.<p>It would help to know which version you tried. Things have gotten better over the years.<p>&gt; I tried `man lnav` in separate terminal - but no man page is provided.<p>A man page exists, but only contains basic information. The builtin help text is much more extensive and can be viewed by running:<p><pre><code> lnav -H </code></pre> There is also the documentation website: <a href="https:&#x2F;&#x2F;docs.lnav.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;docs.lnav.org&#x2F;</a><p>&gt; `ps` shows 3 processes which would not die with SIGTERM, have to `kill -9`.<p>Older versions of lnav would use readline for the prompt and had to run it in a separate process because of &quot;reasons&quot;. More recent versions have a custom prompt and don&#x27;t require the extra processes.
    • tjoff1 hour ago
      I don&#x27;t know how you got it but q and Q closes it, and there is a man page on my system at least.
  • kiliancs2 hours ago
    A discussion from 3 years ago. <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=34243520">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=34243520</a>
  • p0w3n3d11 hours ago
    This is almost the thing I want and need. What I need is some sort of TUI grafana - Json log splitter&#x2F;organizer&#x2F;finder
    • aledevv7 hours ago
      In my opinion logfile navigator is much better than grafana, I use grafana to view a lot of microservices docker logs, but it&#x27;s too tedious for me (even if depends on your specific use case).<p>This one, on the other hand, is cleaner and lets you find what you&#x27;re looking for quickly. And, last but not least, is much lighter.
    • makapuf10 hours ago
      Currently working exactly on that <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;makapuf&#x2F;treewalker" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;makapuf&#x2F;treewalker</a> (even if it could always use some love)
    • dima5511 hours ago
      I use vnlog and feedgnuplot to massage and plot data on the console all the time. It&#x27;s even less than a tui, but might be what you want.
      • dloss10 hours ago
        If you&#x27;re fine with CLIs, maybe my Kelora project is worth a look. It&#x27;s a very flexible log processor with built-in scripting: <a href="https:&#x2F;&#x2F;kelora.dev" rel="nofollow">https:&#x2F;&#x2F;kelora.dev</a>
  • mitul0052 hours ago
    Interesting, I want to try this for debugging our AI gateway when you&#x27;re routing requests across 20+ LLM providers, the logs get noisy fast. Being able to filter by log level, jump between errors, and run SQL-style queries against structured logs in the terminal sounds like a huge time saver. No more grepping through multi-GB log files.
  • secureblueprint23 minutes ago
    This is very helpful
  • elcapitan8 hours ago
    &gt; ssh playground@demo.lnav.org<p>Really appreciate this way to demo it quickly, very nice!
    • rgilton5 hours ago
      Just be aware of the risks! <a href="https:&#x2F;&#x2F;security.stackexchange.com&#x2F;questions&#x2F;38128&#x2F;what-are-the-risks-of-sshing-to-an-untrusted-host" rel="nofollow">https:&#x2F;&#x2F;security.stackexchange.com&#x2F;questions&#x2F;38128&#x2F;what-are-...</a>
  • rsafaya6 hours ago
    I wish I had found this earlier. Nothing like looking at thousands of EV charger logs all day to mak you appreciate something like this.
  • Sammi7 hours ago
    This looks great.<p>I&#x27;ve been using klogg and if you&#x27;re more into GUI&#x27;s then I think it&#x27;s the best there is. It opens and searches in log files of many gigabytes with easy. It&#x27;s a simple and clean multiplatform QT app.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;variar&#x2F;klogg" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;variar&#x2F;klogg</a>
    • graemep7 hours ago
      The problem with GUIs is that AFAIK they need to be installed on the machine the logs you are reading are on so a heavy install on a server.
      • kevin_thibedeau3 hours ago
        Qt still runs over X11. You can just have the app and support libs for remote display without a full desktop environment.
  • brunosutic9 hours ago
    I tried lnav about 7-8 years ago and as a terminal junkie I really liked the features.<p>The only breaking thing was a huge (almost bloated) memory consumption. At that time lnav basically just kept everything in memory. Does anyone did that change?
    • xx_ns9 hours ago
      According to the linked homepage, the memory usage seems decent (few hundred megs for most use cases when working with a 3.3G logfile). There&#x27;s a screenshot with various tasks and what the peak memory usage is.<p>At some point you need to keep quite a large context in memory to have both decent performance and useful features (that aren&#x27;t unbearably slow to use). lnav seems to land at a reasonable middle ground.
    • tstack2 hours ago
      &gt; At that time lnav basically just kept everything in memory.<p>lnav has never really kept the contents of files in memory. It does build an index of every line in a file. One exception is that it will decompress small gzip files and keep them in memory as a tradeoff from decompressing on the fly.<p>The memory consumption has never been a problem for me. So, it&#x27;s not something I&#x27;ve ever focused on.
  • asmosoinio11 hours ago
    Looks very useful, will give it a go.<p>This resonates with my use of grep+less: <a href="https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav?tab=readme-ov-file#why-not-just-use-tailgrepless" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav?tab=readme-ov-file#why-not-ju...</a>
  • __bax9 hours ago
    Must have tool!
  • SoftTalker3 hours ago
    I&#x27;ve always just used less(1).
    • tstack2 hours ago
      Yep, I would say the stiffest competition for lnav is the old tools[1]. I would just hope folks could have an open mind and give &quot;new&quot; things a chance (although lnav has been on github for 17 years).<p>[1] - <a href="https:&#x2F;&#x2F;lnav.org&#x2F;2013&#x2F;09&#x2F;10&#x2F;competing-with-tail.html" rel="nofollow">https:&#x2F;&#x2F;lnav.org&#x2F;2013&#x2F;09&#x2F;10&#x2F;competing-with-tail.html</a>
  • steveharing19 hours ago
    I was looking for something like this, Appreciate it!
  • vincentabolarin8 hours ago
    This looks genuinely useful.
  • yagelar8 hours ago
    very nice, definitely will use it
  • worksonmine7 hours ago
    It&#x27;s a nice tool but I really wish the configuration wasn&#x27;t done in json and loaded from $XDG_CONFIG_HOME.
  • peytongreen_dev2 minutes ago
    [dead]
  • leontloveless5 hours ago
    [dead]
  • Duke645 hours ago
    I&#x27;m a little disappointed that it&#x27;s not written in Rust.
    • tstack3 hours ago
      Speaking as the author, I too wish it was written in Rust. But, I started it in 2007 when I needed to get practice with C++ for work. At this point, there&#x27;s so much code in lnav, rewriting would be a long process. There are some sub-components[1] that are written in Rust though.<p>A new project called logana[2] is written in Rust and is headed in a good direction. Use&#x2F;contribute to that if you&#x27;re really interested.<p>[1] - <a href="https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav&#x2F;tree&#x2F;master&#x2F;src&#x2F;third-party&#x2F;lnav-rs-ext" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav&#x2F;tree&#x2F;master&#x2F;src&#x2F;third-party&#x2F;l...</a><p>[2] - <a href="https:&#x2F;&#x2F;github.com&#x2F;pauloremoli&#x2F;logana&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;pauloremoli&#x2F;logana&#x2F;</a>
    • kermatt1 hour ago
      How would this improve the functionality of lnav?
    • emmelaich5 hours ago
      I sense an opportunity for you.
  • teh6 hours ago
    Super useful tool but need to be aware that this is reading potentially untrusted input (e.g. in the case of http request logs) and written in c++, so a possible attack vector. I use lnav where I trust the logs, but do wish a safe implementation existed.
    • fireflash385 hours ago
      Memory safety doesn&#x27;t mean it&#x27;s safe. And C++ doesn&#x27;t mean it&#x27;s unsafe.<p>Browsers are in C++, do you not use them? Curl is in C, do you not use it? Kernel is C...
      • teh3 hours ago
        Chrome uses sandboxing and a lot of safe tooling (wuffs, rust) for untrusted data.<p>curl is heavily fuzzed and you still mostly control what you are downloading unless the target is compromised.<p>With logs the attacker controls what goes into your logs.<p>And you don&#x27;t need to really look very hard, there are a fair number of very recent stack and heap overflows: <a href="https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav&#x2F;issues?q=is%3Aissue%20heap%20overflow" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tstack&#x2F;lnav&#x2F;issues?q=is%3Aissue%20heap%20...</a>