[docs] start to migrate lnav.org

pull/884/head
Timothy Stack 3 years ago
parent 4b6fb5ff18
commit 1d6ac461ba

5
docs/.gitignore vendored

@ -0,0 +1,5 @@
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor

@ -0,0 +1,33 @@
---
layout: page
title: Downloads
permalink: /downloads
---
The latest version is [**v0.9.0**](https://github.com/tstack/lnav/releases/latest).
## Linux
Install from the [Snap Store](https://snapcraft.io/lnav):
```shell
% sudo snap install lnav
```
## MacOS
Install using [Homebrew](https://formulae.brew.sh/formula/lnav):
```shell
% brew install lnav
```
## Source
```shell
% tar xvfz
% cd lnav-
% ./configure
% make
% make install
```

@ -0,0 +1,4 @@
---
layout: page
title: Features
---

@ -0,0 +1,6 @@
---
title: Docs
permalink: /docs
redirect_to:
- https://docs.lnav.org
---

@ -0,0 +1,25 @@
---
permalink: /404.html
layout: default
---
<style type="text/css" media="screen">
.container {
margin: 10px auto;
max-width: 600px;
text-align: center;
}
h1 {
margin: 30px 0;
font-size: 4em;
line-height: 1;
letter-spacing: -1px;
}
</style>
<div class="container">
<h1>404</h1>
<p><strong>Page not found :(</strong></p>
<p>The requested page could not be found.</p>
</div>

@ -0,0 +1,31 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 4.2.0"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
gem "jekyll-redirect-from", "~> 0.16.0"
end
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", "~> 1.2"
gem "tzinfo-data"
end
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]

@ -0,0 +1,83 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.9)
em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
ffi (1.15.1)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (1.8.10)
concurrent-ruby (~> 1.0)
jekyll (4.2.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.4.0)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 2.0)
jekyll-feed (0.15.1)
jekyll (>= 3.7, < 5.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
jekyll-seo-tag (2.7.1)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.3.1)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.5.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.6)
rb-fsevent (0.11.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.5)
rouge (3.26.0)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
terminal-table (2.0.0)
unicode-display_width (~> 1.1, >= 1.1.1)
unicode-display_width (1.7.0)
PLATFORMS
universal-darwin-20
DEPENDENCIES
jekyll (~> 4.2.0)
jekyll-feed (~> 0.12)
jekyll-redirect-from (~> 0.16.0)
minima (~> 2.5)
tzinfo (~> 1.2)
tzinfo-data
wdm (~> 0.1.1)
BUNDLED WITH
2.2.20

@ -0,0 +1,58 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
#
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: The Logfile Navigator
email: support@lnav.org
description: >- # this means to ignore newlines until "baseurl:"
The Logfile Navigator, lnav for short, is an advanced log file viewer
for the small-scale.
baseurl: "" # the subpath of your site, e.g. /blog
url: "http://lnav.org" # the base hostname & protocol for your site, e.g. http://example.com
twitter_username: lnavapp
# github_username: tstack
# Build settings
theme: minima
plugins:
- jekyll-feed
- jekyll-redirect-from
exclude:
- source
# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
# the internal "default list".
#
# Excluded items can be processed by explicitly listing the directories or
# their entries' file path in the `include:` list.
#
# exclude:
# - .sass-cache/
# - .jekyll-cache/
# - gemfiles/
# - Gemfile
# - Gemfile.lock
# - node_modules/
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: "en" }}">
{%- include head.html -%}
<style>
main {
margin: 0 50px;
}
dl {
display: grid;
grid-template-rows: auto auto;
grid-auto-flow: column;
width: 100%;
}
dl dt {
font-weight: normal;
font-size: x-large;
text-align: center;
border-bottom: 1px solid #ddd;
margin: 20px 30px;
}
dl dd {
margin: 0 30px 20px 30px;
min-height: 3em;
color: #828282;
font-size: medium;
}
</style>
<body>
{%- include header.html -%}
<main class="page-content" aria-label="Content">
{{ content }}
</main>
{%- include footer.html -%}
</body>
</html>

@ -0,0 +1,55 @@
---
layout: post
title: "Support for JSON-encoded logs in v0.6.1"
date: 2013-09-10 00:00:00
---
Making logs easily digestible by machines is becoming a concern as tools like
elasticsearch become more popular. One of the popular strategies is to encode
the whole log message in JSON and then write that as a single line to a file.
For example:
```json
{"time": "2013-09-04T23:55:09.274041Z", "level" : "INFO", "body" : "Hello, World!" }
{"time": "2013-09-04T23:56:00.285224Z", "level" : "ERROR", "body" : "Something terrible has happened!", "tb": " foo.c:12\n bar.y:33" }
```
Unfortunately, what is good for a machine is not so great for a human. To try to
improve the situation, the latest release of lnav includes support for parsing
JSON log messages and transforming them on-the-fly. The display format is
specified in a log format configuration and can specify which fields should be
displayed on the main message line. Any unused fields that are found in the
message will be displayed below the main field so you don't miss anything.
The above log lines can be transformed using the following format configuration:
```json
{
"json_ex_log": {
"title": "Example JSON Log",
"description": "An example log format configuration for JSON logs",
"json": true,
"file-pattern": "test-log\\.json.*",
"level-field": "level",
"line-format": [
{
"field": "time"
},
" ",
{
"field": "body"
}
]
}
}
```
After copying this config to `~/.lnav/formats/test/format.json`, the log messages
will look like this when viewed in lnav:
```
2013-09-04T23:55:09.274041Z Hello, World!
2013-09-04T23:56:00.285224Z Something terrible has happened!
tb: foo.c:12
tb: bar.y:33
```

@ -0,0 +1,11 @@
---
layout: post
title: "Four years on GitHub"
date: 2013-09-13 00:00:00
---
The [first commit](https://github.com/tstack/lnav/commit/b4ec432515e95e86ec9d711833b8cb34d0912546)
to the [lnav repository](https://github.com/tstack/lnav) was four years ago
today! I started working on lnav a couple of years before that, but this was
its first public appearance. I still use it every day and plan to keep things
going for years to come.

@ -0,0 +1,8 @@
---
layout: post
title: "Mini review of lnav in Linux Magazine"
date: 2013-10-05 00:00:00
---
The [October issue of Linux Magazine](http://www.linux-magazine.com/Issues/2013/155/Tool-Tips)
has a nice review of lnav v0.5.0, the author gave it four out of five stars!

@ -0,0 +1,22 @@
---
layout: post
title: "Competing with 'tail -f'"
date: 2013-09-10 00:00:00
---
Probably the toughest competition for lnav is the standard Unix utilities like
tail, grep, less, and emacs/vim. It can be hard trying to convince people that
these built-in commands that they've used for forever can be improved upon. The
advanced features of lnav might even work against it since folks are expecting
to have to learn a bunch of stuff to see any benefits.
The reality is that there are quite a few "passive" features in lnav that can
provide value with no effort required by the user. For example, lnav can easily
replace 'tail -f', it's even shorter to type! Beyond the basic task of
displaying new lines appended to a log file, you also get to see log messages
from multiple files interleaved, the ability to scroll backwards, syntax
highlighting, live searching, and so on. These basic features do not have the
same "wow" factor as executing a SQL query over data automatically extracted
from a log file, but they're the features that get used 90% of the time.
Anyways, I think I'm gaining a new appreciation for marketing/sales...

@ -0,0 +1,9 @@
---
layout: post
title: "Mini-review of lnav in Linux User Magazine"
date: 2013-09-10 00:00:00
---
The german magazine, [Linux User](http://www.linux-user.de/), has a
mini-review of lnav v0.6.0 in their
[November issue](http://www.linux-user.de/Downloads/LUCE/2013/lu-ce_2013-11.pdf)!

@ -0,0 +1,20 @@
---
layout: post
title: "Changes To The Scrollbar"
date: 2014-02-22 00:00:00
---
I've made some changes to the scrollbar that is shown on the right side of the
display based on some feedback from users. The scroll area now has a single
vertical line extending from the top to the bottom. Previously, this area would
show log message characters and it wasn't very clear that the scroll bar
existed. The line is colored based whether there are errors or warnings in that
part of the log. The coloring should make it easier to see the distribution of
errors across the whole log. Similarly, there are notches added to the left and
right side of the line to show search hits and bookmarks, respectively. See the
following screenshot to get an idea of what it looks like:
![Screenshot of the redesigned scrollbar](/assets/images/scrollbar-change-2.png)
These changes are currently only in the latest code from git. I'll be playing
with things a bit more before making a release.

@ -0,0 +1,38 @@
---
layout: post
title: "Pretty-print view in v0.7.3"
date: 2015-04-11 00:00:00
---
I wanted to call out the pretty-print feature in the latest release of lnav.
This idea came from a coworker of Suresh who was having a hard time trying to
read some unformatted XML in a log. They wanted the XML pretty-printed and were
hoping that could be done by just piping the message to xmlpp or the like. So,
first we implemented the 'pipe-to' and 'pipe-line-to' commands that will let you
pipe log messages to a command and then display the result inside of lnav. That
worked well enough, but pretty-printing is such a frequent operation that having
to execute a command was kind of a pain. It would also be nice if it worked for
a variety of text, like JSON or Python data. The solution we came up with was to
leverage the existing code for parsing log messages to create a simple
pretty-printer that should work for most data formats. Another benefit is that
the log message does not have to be well-formed for the printer to work, any
leading or trailing garbage shouldn't confuse things.
As an example, here is a screenshot of the log message with the unformatted XML
text with word-wrapping turned on:
![Screenshot of raw XML](/assets/images/lnav-before-pretty.png)
That's not very easy to read and it's hard to figure out the structure of the
message. Now, here is that same message after pressing SHIFT+P to switch to the
pretty-print view of lnav:
![Screenshot of pretty-printed XML](/assets/images/lnav-after-pretty.png)
The XML text is indented nicely and the usual syntax highlighting is applied.
Also notice that lnav will automatically try to lookup the DNS name for IP
addresses. Overall, I think it's a major improvement over the raw view.
This is a pretty simple feature but I have found it quite useful in the couple
weeks that it has been implemented. It's so useful that I'm kicking myself for
not having thought of it before.

@ -0,0 +1,10 @@
---
layout: post
title: "lnav in print"
date: 2016-03-20 00:00:00
---
A [review of lnav](https://archive.org/details/Linux_User_Developer_162_2016_UK/page/n87/mode/2up)
is in Linux User & Developer magazine issue 162:
![Picture of lnav story in the magazine](/assets/images/linux-user-and-dev-mag.jpeg)

@ -0,0 +1,9 @@
---
layout: post
title: "Tutorial for lnav in Linux Magazine"
date: 2018-04-05 00:00:00
---
Looks like there was an in-depth
[tutorial on lnav in Linux Magazine](http://www.linux-magazine.com/Issues/2017/196/Tutorials-lnav).
Unfortunately, I didn't notice until now and missed out on a hardcopy.

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

@ -0,0 +1,5 @@
---
title: Blog
layout: home
---

@ -0,0 +1,36 @@
---
# Feel free to add content and custom Front Matter to this file.
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
layout: top
---
![Screenshot of lnav](/assets/images/lnav-front-page.png){: style="float: right"}
## An advanced log file viewer for the small-scale
Watch and analyze your log files from a terminal.
No server. No setup. Still featureful.
<dl>
<dt>In Your Terminal</dt>
<dd>
Many logging tools, like Splunk, provide great features but are optimized for
large-scale deployments. They require installing and configuring servers
before they can be effectively used. There is still a need for a robust log
file analyzer for the terminal.
</dd>
<dt>Easy to Use</dt>
<dd>
Just point lnav to a directory and it will take care of the rest. File formats
are automatically detected and compressed files are unpacked on the fly.
</dd>
<dt>Improved Presentation</dt>
<dd>
Log files are a wealth of information, lnav can help highlight the parts that
are important and filter out the noise.
</dd>
</dl>
Loading…
Cancel
Save