mirror of https://github.com/tstack/lnav
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
1 year ago
|
---
|
||
|
layout: post
|
||
|
title: Tooling for troubleshooting configuration
|
||
|
excerpt: Getting the final configuration and the sources of values
|
||
|
---
|
||
|
|
||
|
*(This change is in **v0.12.0+**)*
|
||
|
|
||
|
Inspired by [this blog post about reporting configuration file locations](https://utcc.utoronto.ca/~cks/space/blog/sysadmin/ReportConfigFileLocations)
|
||
|
and the [ensuing HackerNews commentary](https://news.ycombinator.com/item?id=36465886).
|
||
|
I've added the `config get` and `config blame` management commands for getting the
|
||
|
final configuration and the source of each property in the configuration, respectively.
|
||
|
I had previously added the file locations used by **lnav** in the `lnav -h` output as
|
||
|
recommended by the blog post. But, the HN comments made a good case for adding the
|
||
|
the other troubleshooting tooling as well.
|
||
|
|
||
|
If you would like to try out these new commands, you need to run lnav with the `-m`
|
||
|
option to switch to the "management" mode. For example, just running lnav with this
|
||
|
flag will print out the available operations:
|
||
|
|
||
|
```console
|
||
|
$ lnav -m
|
||
|
✘ error: expecting an operation to perform
|
||
|
= help: the available operations are:
|
||
|
• config: perform operations on the lnav configuration
|
||
|
• format: perform operations on log file formats
|
||
|
• piper: perform operations on piper storage
|
||
|
• regex101: create and edit log message regular expressions using regex101.com
|
||
|
```
|
||
|
|
||
|
Executing `config get` will print out the final configuration that lnav is operating
|
||
|
with as JSON:
|
||
|
|
||
|
```console
|
||
|
$ lnav -m config get
|
||
|
```
|
||
|
|
||
|
If you would like to know the source of the value for each property, you can use
|
||
|
the `config blame` command, like so:
|
||
|
|
||
|
```console
|
||
|
$ lnav -m config blame | tail
|
||
|
/ui/theme-defs/solarized-light/vars/black -> solarized-light.json:15
|
||
|
/ui/theme-defs/solarized-light/vars/blue -> solarized-light.json:21
|
||
|
/ui/theme-defs/solarized-light/vars/cyan -> solarized-light.json:22
|
||
|
/ui/theme-defs/solarized-light/vars/green -> solarized-light.json:23
|
||
|
/ui/theme-defs/solarized-light/vars/magenta -> solarized-light.json:19
|
||
|
/ui/theme-defs/solarized-light/vars/orange -> solarized-light.json:17
|
||
|
/ui/theme-defs/solarized-light/vars/red -> solarized-light.json:18
|
||
|
/ui/theme-defs/solarized-light/vars/semantic_highlight_color -> solarized-light.json:24
|
||
|
/ui/theme-defs/solarized-light/vars/violet -> solarized-light.json:20
|
||
|
/ui/theme-defs/solarized-light/vars/yellow -> solarized-light.json:16
|
||
|
```
|
||
|
|
||
|
In the above output, "solarized-light.json" file is built into the lnav
|
||
|
executable and is not from the file system.
|