diff options
Diffstat (limited to '')
-rw-r--r-- | README | 80 | ||||
-rw-r--r-- | README.md | 157 |
2 files changed, 237 insertions, 0 deletions
@@ -0,0 +1,80 @@ + +LNAV +---- + +The log file navigator, lnav, is an enhanced log file viewer that +takes advantage of any semantic information that can be gleaned from +the files being viewed, such as timestamps and log levels. Using this +extra semantic information, lnav can do things like interleaving +messages from different files, generate histograms of messages over +time, and providing hotkeys for navigating through the file. It is +hoped that these features will allow the user to quickly and +efficiently zero in on problems. + + +PREREQUISITES +------------- + +The following software packages are required to build/run lnav: + + gcc/clang - A C++14-compatible compiler. + libpcre2 - The Perl Compatible Regular Expression v2 (PCRE2) library. + sqlite - The SQLite database engine. Version 3.9.0 or higher is required. + ncurses - The ncurses text UI library. + readline - The readline line editing library. + zlib - The zlib compression library. + bz2 - The bzip2 compression library. + re2c - The re2c scanner generator. + libcurl - The cURL library for downloading files from URLs. Version + 7.23.0 or higher is required. + libarchive - The libarchive library for opening archive files, like zip/tgz. + wireshark - The 'tshark' program is used to interpret pcap files. + + +INSTALLATION +------------ + +Lnav follows the usual GNU style for configuring and installing software: + +Run "./autogen.sh" if compiling from a cloned repository. + + $ ./configure + $ make + $ sudo make install + + +USING +----- + +The only file installed is the executable, "lnav". You can execute it +with no arguments to view the default set of files: + + $ lnav + +You can view all the syslog messages by running: + + $ lnav /var/log/messages* + + +SUPPORT +------- + +The lnav mailing list can be reached at: + + lnav@googlegroups.com + + +ACKNOWLEDGEMENTS +---------------- + +The xterm color database was copied from: + + https://jonasjacek.github.io/colors/ + + +SEE ALSO +-------- + +The lnav website: + + https://lnav.org diff --git a/README.md b/README.md new file mode 100644 index 0000000..5f1185a --- /dev/null +++ b/README.md @@ -0,0 +1,157 @@ +<!-- This is a comment for testing purposes --> + +[![Build](https://github.com/tstack/lnav/workflows/ci-build/badge.svg)](https://github.com/tstack/lnav/actions?query=workflow%3Aci-build) +[![Docs](https://readthedocs.org/projects/lnav/badge/?version=latest&style=plastic)](https://docs.lnav.org) +[![Coverage Status](https://coveralls.io/repos/github/tstack/lnav/badge.svg?branch=master)](https://coveralls.io/github/tstack/lnav?branch=master) +[![lnav](https://snapcraft.io/lnav/badge.svg)](https://snapcraft.io/lnav) + +[<img src="https://assets-global.website-files.com/6257adef93867e50d84d30e2/62594fddd654fc29fcc07359_cb48d2a8d4991281d7a6a95d2f58195e.svg" height="20"/>](https://discord.gg/erBPnKwz7R) + +_This is the source repository for **lnav**, visit [https://lnav.org](https://lnav.org) for a high level overview._ + +# LNAV -- The Logfile Navigator + +The Log File Navigator, **lnav** for short, is an advanced log file viewer +for the small-scale. It is a terminal application that can understand +your log files and make it easy for you to find problems with little to +no setup. + +## Screenshot + +The following screenshot shows a syslog file. Log lines are displayed with +highlights. Errors are red and warnings are yellow. + +[![Screenshot](docs/assets/images/lnav-syslog-thumb.png)](docs/assets/images/lnav-syslog.png) + +## Features + +- Log messages from different files are collated together into a single view +- Automatic detection of log format +- Automatic decompression of GZip and BZip2 files +- Filter log messages based on regular expressions +- Use SQL to analyze your logs +- And more... + +## Installation + +[Download a statically-linked binary for Linux/MacOS from the release page](https://github.com/tstack/lnav/releases/latest#release-artifacts) + +## Usage + +The only file installed is the executable, `lnav`. You can execute it +with no arguments to view the default set of files: + +``` +$ lnav +``` + +You can view all the syslog messages by running: + +``` +$ lnav /var/log/messages* +``` + +### Usage with `systemd-journald` + +On systems running `systemd-journald`, you can use `lnav` as the pager: + +``` +$ journalctl | lnav +``` + +or in follow mode: + +``` +$ journalctl -f | lnav +``` + +Since `journalctl`'s default output format omits the year, if you are +viewing logs which span multiple years you will need to change the +output format to include the year, otherwise `lnav` gets confused: + +``` +$ journalctl -o short-iso | lnav +``` + +It is also possible to use `journalctl`'s json output format and `lnav` +will make use of additional fields such as PRIORITY and \_SYSTEMD_UNIT: + +``` +$ journalctl -o json | lnav +``` + +In case some MESSAGE fields contain special characters such as +ANSI color codes which are considered as unprintable by journalctl, +specifying `journalctl`'s `-a` option might be preferable in order +to output those messages still in a non-binary representation: + +``` +$ journalctl -a -o json | lnav +``` + +If using systemd v236 or newer, the output fields can be limited to +the ones actually recognized by `lnav` for increased efficiency: + +``` +$ journalctl -o json --output-fields=MESSAGE,PRIORITY,_PID,SYSLOG_IDENTIFIER,_SYSTEMD_UNIT | lnav +``` + +If your system has been running for a long time, for increased +efficiency you may want to limit the number of log lines fed into +`lnav`, e.g. via `journalctl`'s `-n` or `--since=...` options. + +In case of a persistent journal, you may want to limit the number +of log lines fed into `lnav` via `journalctl`'s `-b` option. + +## Support + +Please file issues on this repository or use the discussions section. +The following alternatives are also available: + +- [support@lnav.org](mailto:support@lnav.org) +- [Discord](https://discord.gg/erBPnKwz7R) +- [Google Groups](https://groups.google.com/g/lnav) + +## Links + +- [Main Site](https://lnav.org) +- [**Documentation**](https://docs.lnav.org) on Read the Docs +- [Internal Architecture](ARCHITECTURE.md) + +## Contributing + +- [Become a Sponsor on GitHub](https://github.com/sponsors/tstack) + +### Building From Source + +#### Prerequisites + +The following software packages are required to build lnav: + +- gcc/clang - A C++14-compatible compiler. +- libpcre2 - The Perl Compatible Regular Expression v2 (PCRE2) library. +- sqlite - The SQLite database engine. Version 3.9.0 or higher is required. +- ncurses - The ncurses text UI library. +- readline - The readline line editing library. +- zlib - The zlib compression library. +- bz2 - The bzip2 compression library. +- libcurl - The cURL library for downloading files from URLs. Version 7.23.0 or higher is required. +- libarchive - The libarchive library for opening archive files, like zip/tgz. +- wireshark - The 'tshark' program is used to interpret pcap files. + +#### Build + +Lnav follows the usual GNU style for configuring and installing software: + +Run `./autogen.sh` if compiling from a cloned repository. + +```console +$ ./configure +$ make +$ sudo make install +``` + +## See Also + +[Angle-grinder](https://github.com/rcoh/angle-grinder) is a tool to slice and dice log files on the command-line. +If you're familiar with the SumoLogic query language, you might find this tool more comfortable to work with. |