DOKK / manpages / debian 12 / lwatch / lwatch.conf.5.en
lwatch.conf(5) File Formats Manual lwatch.conf(5)

lwatch.conf — configuration file for lwatch(1), syntax highlighting for syslog/syslog-ng file

Default configuration file for lwatch is /etc/lwatch/lwatch.conf (built-in value), but you can specify another file with -C command line option. Read lwatch(1) for details.

Everything from # (hash) to end of line is a comment.

cfg_ver - this is obligatory variable and it must be placed as the first option in config file. This variable contains version of configuration file syntax. Current manual describes version 1.

rule_action - after successful matching rule lwatch tries to match next one. You can choose to exit after executing matching rule changing this parameter from continue (that's the default) to exit. You can override this global parameter for each rule. See section Actions and modificators.

use_syslog - if set to yes some messages will be logged through syslog, default is yes

log_level - how verbose log messages should produce lwatch

date_color - default color of date part

host_color - default color of hostname part

serv_color - default color of service part

mesg_color - default color of message part

input_file - where lwatch is reading data from, built-in default is /var/lib/lwatch/syslog.fifo, could be overwritten with command line option -i

output_file - where lwatch output colored data; built-in default is stdout (-), could be overwritten with command line option -o

show_unparsed - by default lwatch ignores lines which cannot be split into date, host, service and message, set this variable to yes if you would like to see those lines; it is the same as command line option -s

To specify color you can use following strings: black, red, green, brown, blue, magenta, cyan, lightgray, darkgray, brightred, brightgreen, yellow, brightblue, purple, brightcyan, white.

To specify the lower visible log level you can use following strings: LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG. However, lwatch logs some debug data at LOG_DEBUG, some maybe useful messages at LOG_NOTICE and errors at LOG_ERROR. So, technically, meaningful values are:

LOG_DEBUG - log everything
LOG_NOTICE - log maybe useful messages and errors (this is the default)
LOG_ERROR - log only errors (if LOG_NOTICE is too verbose for you this is the next recommended setting)
LOG_CRIT - be quiet

Please keep in mind that meaningful values may be a subject of change in future releases.

There The True Power of Lwatch is hidden. You can match input lines against PCRE (Perl Compatible Regular Expression) and change output depends on matching. You can read more about PCRE in pcrepattern(3) (from libpcre) or in perlre(1) (from perl).

There are two ways to define matching pattern/action. First one is the simple one. Just pattern and one action:

/regexp/      action 

The second one is more complex, but it allows one to specify more than one action or modificator with one pattern:

/regexp/      { 
        action1 
        action2 
        ... 
        actionN 
} 

There is one important thing you should remember. There is no need to quote / (slash) if you use it inside regexp pattern. For example:

//USR/SBIN/CRON/        {       # cron's messages are not important 
        color=blue              # display it in blue 
        match_service 
} 

date_color - set date color

mesg_color, color - set message color

serv_color - set service name color

host_color - set hostname color

ignore - ignore this pattern, do not match next patterns

exit - do not match next patterns when rule_action is set to continue, in other case it is superfluous

continue - continue with next pattern when rule_action is set to exit, in other case it is superfluous; please note, that if ignore> is used in the same action it takes a priority - it makes no sense to match other rules for string that has been ignored

highlight - highlight matched string with given color (see NOTES)

match_host - match hostname insted message

match_service - match service name instead message

highlight action changes the matched text. That's why the following part of configuration won't work:

/root/                         highlight=brown 
/session closed for user root/ ignore 

when

(pam_unix) session closed for user root 

would appear as an input line.

First rule changes the text to:

(pam_unix) session closed for user [BROWN]root[NORMAL] 

where [BROWN] and [NORMAL] are control sequences to change color to brown, then change it back to default color of this part. Of course this line does not match the second rule and you can see it on the output.

There are two possible workarounds:

put the ignore pattern before the highlight one
enhance your second rules like:

/session closed for user .*root.*/ ignore 

Just look into provided lwatch.conf.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. This library is available at: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

lwatch(1), pcrepattern(3), perlre(1)