Git Product home page Git Product logo

toolong's Introduction

A Kookaburra sitting on a scroll

Discord

Toolong

A terminal application to view, tail, merge, and search log files (plus JSONL).

๐ŸŽฌ Viewing a single file

ย 

Screen.Recording.2024-02-08.at.14.30.42.mov

Keep calm and log files

See Toolong on Calmcode.io for a calming introduction to Toolong.

What?

Screenshot 2024-02-08 at 13 47 28
  • Live tailing of log files.
  • Syntax highlights common web server log formats.
  • As fast to open a multiple-gigabyte file as it is to open a tiny text file.
  • Support for JSONL files: lines are pretty printed.
  • Opens .bz and .bz2 files automatically.
  • Merges log files by auto detecting timestamps.

Why?

I spent a lot of time in my past life as a web developer working with logs, typically on web servers via ssh. I would use a variety of tools, but my goto method of analyzing logs was directly on the server with *nix tools like as tail, less, and grep etc. As useful as these tools are, they are not without friction.

I built toolong to be the tool I would have wanted back then. It is snappy, straightforward to use, and does a lot of the grunt work for you.

Screenshots

Screenshot 2024-02-08 at 13 47 28 Screenshot 2024-02-08 at 13 48 04
Screenshot 2024-02-08 at 13 49 22 Screenshot 2024-02-08 at 13 50 04

Videos

๐ŸŽฌ Merging multiple (compressed) files ย 
Screen.Recording.2024-02-08.at.14.31.52.mov
๐ŸŽฌ Viewing JSONL files ย 
Screen.Recording.2024-02-08.at.14.32.46.mov
๐ŸŽฌ Live Tailing a file ย 
Screen.Recording.2024-02-08.at.15.23.38.mov

How?

Toolong is currently best installed with pipx.

pipx install toolong

You could also install Toolong with Pip:

pip install toolong

Note

If you use pip, you should ideally create a virtual environment to avoid potential dependancy conflicts.

However you install Toolong, the tl command will be added to your path:

tl

In the near future there will be more install methods, and hopefully your favorite package manager.

Compatibility

Toolong works on Linux and macOS. I don't think it will work on Windows yet, but it could. Let me know if you would like Windows support.

Opening files

To open a file with Toolong, add the file name(s) as arguments to the command:

tl mylogfile.log

If you add multiple filenames, they will open in tabs.

Add the --merge switch to open multiple files and combine them in to a single view:

tl access.log* --merge

In the app, press f1 for additional help.

Who?

This guy. An ex web developer who somehow makes a living writing terminal apps.


History

If you follow me on Twitter, you may have seen me refer to this app as Tailless, because it was intended to be a replacement for a tail + less combo. I settled on the name "Toolong" because it is a bit more apt, and still had the same initials.

Development

Toolong v1.0.0 has a solid feature set, which covers most of my requirements. However, there is a tonne of features which could be added to something like this, and I will likely implement some of them in the future.

If you want to talk about Toolong, find me on the Textualize Discord Server.

Thanks

I am grateful for the LogMerger project which I referenced (and borrowed regexes from) when building Toolong.

Alternatives

Toolong is not the first TUI for working with log files. See lnav as a more mature alternative.

toolong's People

Contributors

willmcgugan avatar koaning avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.