Package: rsyslog
Version: 8.2404.0-2
Severity: minor
Tags: patch

Dear Maintainer,

   * What led up to the situation?

     Checking for defects with

[test-]groff -mandoc -t -K utf8 -ww -b -z < "man page"

  [test-groff is a script in the repository for "groff"]

   * What was the outcome of this action?

an.tmac:<stdin>:93: warning: cannot nest .TP or .TQ inside .TP; supply a tag

   * What outcome did you expect instead?

     No output (warnings).

-.-

  Remarks and a patch are in the attachments.


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.7.12-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), 
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages rsyslog depends on:
ii  libc6         2.38-12
ii  libestr0      0.1.11-1+b1
ii  libfastjson4  1.2304.0-1+b1
ii  liblognorm5   2.0.6-4+b1
ii  libsystemd0   256~rc4-1
ii  libuuid1      2.40.1-8
ii  libzstd1      1.5.5+dfsg2-2
ii  zlib1g        1:1.3.dfsg+really1.3.1-1

Versions of packages rsyslog recommends:
ii  logrotate  3.21.0-2

Versions of packages rsyslog suggests:
ii  rsyslog-doc                       8.2404.0+dfsg-1
pn  rsyslog-gssapi                    <none>
pn  rsyslog-mongodb                   <none>
pn  rsyslog-mysql | rsyslog-pgsql     <none>
pn  rsyslog-openssl | rsyslog-gnutls  <none>
pn  rsyslog-relp                      <none>

-- no debconf information
  Any program (person), that produces man pages, should check its content for
defects by using

groff -mandoc -t -ww -b -z [ -K utf8 | k ] <man page>

  The same goes for man pages that are used as an input.

  For a style guide use

  mandoc -T lint

-.-

  So any generator should check its products with the above mentioned
'groff' and additionally with 'nroff ...'.

  This is just a simple quality control measure.

  The generator may have to be corrected to get a better man page,
the source file may, and any additional file may.

-.-

The difference between the formatted outputs can be seen with:

  nroff -mandoc <file1> > <out1>
  nroff -mandoc <file2> > <out2>
  diff -u <out1> <out2>

and for groff, using

"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - "

instead of "nroff -mandoc"

  Add the option "-t", if the file contains a table.

  Read the output of "diff -u" with "less -R" or similar.

-.-.

  If "man" (man-db) is used to check the manual for warnings,
the following must be set:

  The option "-warnings=w"

  The environmental variable:

export MAN_KEEP_STDERR=yes (or any non-empty value)

  or

  (produce only warnings):

export MANROFFOPT="-ww -z"

export MAN_KEEP_STDERR=yes (or any non-empty value)

-.-.

Output from "mandoc -T lint rsyslog.conf.5": (possibly shortened list)

mandoc: rsyslog.conf.5:31:96: STYLE: input text line longer than 80 bytes: 
manpage. Rsyslog.con...
mandoc: rsyslog.conf.5:92:2: WARNING: line scope broken: TP breaks TP
mandoc: rsyslog.conf.5:134:85: STYLE: input text line longer than 80 bytes: 
Rsyslog.conf should ...
mandoc: rsyslog.conf.5:138:94: STYLE: input text line longer than 80 bytes: 
Global directives se...
mandoc: rsyslog.conf.5:139:85: STYLE: input text line longer than 80 bytes: 
message queue ($Main...
mandoc: rsyslog.conf.5:140:85: STYLE: input text line longer than 80 bytes: All 
global directive...
mandoc: rsyslog.conf.5:141:95: STYLE: input text line longer than 80 bytes: a 
dollar-sign. The c...
mandoc: rsyslog.conf.5:146:91: STYLE: input text line longer than 80 bytes: 
Templates allow you ...
mandoc: rsyslog.conf.5:147:90: STYLE: input text line longer than 80 bytes: 
file name generation...
mandoc: rsyslog.conf.5:152:84: STYLE: input text line longer than 80 bytes: 
Output channels prov...
mandoc: rsyslog.conf.5:153:90: STYLE: input text line longer than 80 bytes: 
They have to be defi...
mandoc: rsyslog.conf.5:158:83: STYLE: input text line longer than 80 bytes: 
Every rule line cons...
mandoc: rsyslog.conf.5:159:84: STYLE: input text line longer than 80 bytes: two 
fields are separ...
mandoc: rsyslog.conf.5:181:81: STYLE: input text line longer than 80 bytes: and 
should not be us...
mandoc: rsyslog.conf.5:234:93: STYLE: input text line longer than 80 bytes: The 
action field of ...
mandoc: rsyslog.conf.5:235:90: STYLE: input text line longer than 80 bytes: is 
written to a kind...
mandoc: rsyslog.conf.5:239:93: STYLE: input text line longer than 80 bytes: 
Typically messages a...
mandoc: rsyslog.conf.5:244:113: STYLE: input text line longer than 80 bytes: 
*.*     /var/log/tra...
mandoc: rsyslog.conf.5:265:92: STYLE: input text line longer than 80 bytes: 
This version of rsys...
mandoc: rsyslog.conf.5:266:90: STYLE: input text line longer than 80 bytes: 
named pipe can be us...
mandoc: rsyslog.conf.5:267:93: STYLE: input text line longer than 80 bytes: to 
the name of the f...
mandoc: rsyslog.conf.5:271:89: STYLE: input text line longer than 80 bytes: If 
the file you spec...
mandoc: rsyslog.conf.5:274:90: STYLE: input text line longer than 80 bytes: 
There are three ways...
mandoc: rsyslog.conf.5:275:90: STYLE: input text line longer than 80 bytes: 
lossy but standard, ...
mandoc: rsyslog.conf.5:276:86: STYLE: input text line longer than 80 bytes: 
situations but is wi...
mandoc: rsyslog.conf.5:279:89: STYLE: input text line longer than 80 bytes: To 
forward messages ...
mandoc: rsyslog.conf.5:280:90: STYLE: input text line longer than 80 bytes: To 
forward it via pl...
mandoc: rsyslog.conf.5:288:96: STYLE: input text line longer than 80 bytes: In 
the example above...
mandoc: rsyslog.conf.5:289:96: STYLE: input text line longer than 80 bytes: 
port defaults to 514...
mandoc: rsyslog.conf.5:290:95: STYLE: input text line longer than 80 bytes: If 
you expect high t...
mandoc: rsyslog.conf.5:293:94: STYLE: input text line longer than 80 bytes: 
Sockets for forwarde...
mandoc: rsyslog.conf.5:301:96: STYLE: input text line longer than 80 bytes: In 
the example above...
mandoc: rsyslog.conf.5:302:83: STYLE: input text line longer than 80 bytes: the 
device eth0. TCP...
mandoc: rsyslog.conf.5:304:90: STYLE: input text line longer than 80 bytes: For 
Linux with VRF s...
mandoc: rsyslog.conf.5:313:94: STYLE: input text line longer than 80 bytes: 
Keep in mind that yo...
mandoc: rsyslog.conf.5:327:95: STYLE: input text line longer than 80 bytes: 
Emergency messages o...
mandoc: rsyslog.conf.5:328:83: STYLE: input text line longer than 80 bytes: is 
happening with th...
mandoc: rsyslog.conf.5:332:81: STYLE: input text line longer than 80 bytes: By 
default, a Monito...
mandoc: rsyslog.conf.5:333:94: STYLE: input text line longer than 80 bytes: 
create that schema w...
mandoc: rsyslog.conf.5:334:95: STYLE: input text line longer than 80 bytes: use 
any other schema...
mandoc: rsyslog.conf.5:340:92: STYLE: input text line longer than 80 bytes: If 
the discard actio...
mandoc: rsyslog.conf.5:341:93: STYLE: input text line longer than 80 bytes: can 
be highly effect...
mandoc: rsyslog.conf.5:342:83: STYLE: input text line longer than 80 bytes: 
fill your log files....
mandoc: rsyslog.conf.5:343:89: STYLE: input text line longer than 80 bytes: 
This often plays wel...
mandoc: rsyslog.conf.5:355:97: STYLE: input text line longer than 80 bytes: 
Binds an output chan...
mandoc: rsyslog.conf.5:356:99: STYLE: input text line longer than 80 bytes: 
must start with a $-...
mandoc: rsyslog.conf.5:357:96: STYLE: input text line longer than 80 bytes: to 
the action, use "...
mandoc: rsyslog.conf.5:361:98: STYLE: input text line longer than 80 bytes: 
This executes a prog...
mandoc: rsyslog.conf.5:362:103: STYLE: input text line longer than 80 bytes: 
only command line pa...
mandoc: rsyslog.conf.5:369:105: STYLE: input text line longer than 80 bytes: 
The program-to-execu...
mandoc: rsyslog.conf.5:380:2: ERROR: skipping end of block that is not open: RE
mandoc: rsyslog.conf.5:380:2: WARNING: skipping paragraph macro: br before sp
mandoc: rsyslog.conf.5:384:91: STYLE: input text line longer than 80 bytes: 
They have been kept ...
mandoc: rsyslog.conf.5:385:95: STYLE: input text line longer than 80 bytes: 
effective and also n...
mandoc: rsyslog.conf.5:386:95: STYLE: input text line longer than 80 bytes: 
need to filter based...
mandoc: rsyslog.conf.5:387:81: STYLE: input text line longer than 80 bytes: not 
second-class cit...
mandoc: rsyslog.conf.5:390:103: STYLE: input text line longer than 80 bytes: 
Property-based filte...
mandoc: rsyslog.conf.5:393:99: STYLE: input text line longer than 80 bytes: A 
property-based fil...
mandoc: rsyslog.conf.5:394:94: STYLE: input text line longer than 80 bytes: 
filter type. The col...
mandoc: rsyslog.conf.5:395:103: STYLE: input text line longer than 80 bytes: 
operation to carry o...
mandoc: rsyslog.conf.5:396:90: STYLE: input text line longer than 80 bytes: 
There can be spaces ...
mandoc: rsyslog.conf.5:397:108: STYLE: input text line longer than 80 bytes: 
case-sensitive, so "...
mandoc: rsyslog.conf.5:413:112: STYLE: input text line longer than 80 bytes: 
Compares the "value"...
mandoc: rsyslog.conf.5:442:17: WARNING: undefined escape, printing literally: \\
mandoc: rsyslog.conf.5:442:18: WARNING: undefined escape, printing literally: \7
mandoc: rsyslog.conf.5:446:85: STYLE: input text line longer than 80 bytes: 
contains a template....
mandoc: rsyslog.conf.5:447:88: STYLE: input text line longer than 80 bytes: 
bell (this is an ASC...
mandoc: rsyslog.conf.5:452:81: STYLE: input text line longer than 80 bytes: 
message. Properties ...
mandoc: rsyslog.conf.5:453:86: STYLE: input text line longer than 80 bytes: 
pick a substring or ...
mandoc: rsyslog.conf.5:478:85: STYLE: input text line longer than 80 bytes: The 
<options> part i...
mandoc: rsyslog.conf.5:479:86: STYLE: input text line longer than 80 bytes: See 
details below. B...
mandoc: rsyslog.conf.5:480:86: STYLE: input text line longer than 80 bytes: 
later ones are proce...
mandoc: rsyslog.conf.5:488:88: STYLE: input text line longer than 80 bytes: 
format the string su...
mandoc: rsyslog.conf.5:490:100: STYLE: input text line longer than 80 bytes: 
("\'" and "\\") insi...
mandoc: rsyslog.conf.5:495:90: STYLE: input text line longer than 80 bytes: 
format the string su...
mandoc: rsyslog.conf.5:496:96: STYLE: input text line longer than 80 bytes: sql 
server. This wil...
mandoc: rsyslog.conf.5:497:90: STYLE: input text line longer than 80 bytes: You 
must use stdsql ...
mandoc: rsyslog.conf.5:581:88: STYLE: input text line longer than 80 bytes: 
Output Channels are ...
mandoc: rsyslog.conf.5:582:82: STYLE: input text line longer than 80 bytes: it 
is most likely th...
mandoc: rsyslog.conf.5:583:88: STYLE: input text line longer than 80 bytes: So 
if you use them, ...
mandoc: rsyslog.conf.5:586:84: STYLE: input text line longer than 80 bytes: 
Output channels are ...
mandoc: rsyslog.conf.5:592:87: STYLE: input text line longer than 80 bytes: 
name is the name of ...
mandoc: rsyslog.conf.5:593:91: STYLE: input text line longer than 80 bytes: 
written to, max-size...
mandoc: rsyslog.conf.5:594:90: STYLE: input text line longer than 80 bytes: 
when the max size is...
mandoc: rsyslog.conf.5:595:90: STYLE: input text line longer than 80 bytes: 
that part of action-...
mandoc: rsyslog.conf.5:598:90: STYLE: input text line longer than 80 bytes: 
Keep in mind that $o...
mandoc: rsyslog.conf.5:599:91: STYLE: input text line longer than 80 bytes: To 
do so, you must u...
mandoc: rsyslog.conf.5:607:91: STYLE: input text line longer than 80 bytes: The 
property replace...
mandoc: rsyslog.conf.5:608:92: STYLE: input text line longer than 80 bytes: a 
number of well-def...
mandoc: rsyslog.conf.5:609:94: STYLE: input text line longer than 80 bytes: 
manipulated by the p...
mandoc: rsyslog.conf.5:613:94: STYLE: input text line longer than 80 bytes: 
Syslog message prope...
mandoc: rsyslog.conf.5:614:98: STYLE: input text line longer than 80 bytes: 
percent signs. Prope...
mandoc: rsyslog.conf.5:629:87: STYLE: input text line longer than 80 bytes: the 
message exactly ...
mandoc: rsyslog.conf.5:635:102: STYLE: input text line longer than 80 bytes: 
hostname of the syst...
mandoc: rsyslog.conf.5:642:97: STYLE: input text line longer than 80 bytes: the 
"static" part of...
mandoc: rsyslog.conf.5:652:94: STYLE: input text line longer than 80 bytes: the 
monitorware Info...
mandoc: rsyslog.conf.5:670:112: STYLE: input text line longer than 80 bytes: 
timestamp from the m...
mandoc: rsyslog.conf.5:676:85: STYLE: input text line longer than 80 bytes: The 
contents of the ...
mandoc: rsyslog.conf.5:679:84: STYLE: input text line longer than 80 bytes: The 
contents of the ...
mandoc: rsyslog.conf.5:709:93: STYLE: input text line longer than 80 bytes: 
Properties starting ...
mandoc: rsyslog.conf.5:713:96: STYLE: input text line longer than 80 bytes: 
FromChar and toChar ...
mandoc: rsyslog.conf.5:714:97: STYLE: input text line longer than 80 bytes: 
should be copied. Of...
mandoc: rsyslog.conf.5:715:98: STYLE: input text line longer than 80 bytes: the 
message text, yo...
mandoc: rsyslog.conf.5:716:96: STYLE: input text line longer than 80 bytes: but 
you want to spec...
mandoc: rsyslog.conf.5:717:98: STYLE: input text line longer than 80 bytes: 
like to convert the ...
mandoc: rsyslog.conf.5:718:96: STYLE: input text line longer than 80 bytes: 
extract from a posit...
mandoc: rsyslog.conf.5:724:97: STYLE: input text line longer than 80 bytes: 
This tells rsyslog t...
mandoc: rsyslog.conf.5:728:99: STYLE: input text line longer than 80 bytes: by 
the string "--end...
mandoc: rsyslog.conf.5:729:101: STYLE: input text line longer than 80 bytes: If 
you are using reg...
mandoc: rsyslog.conf.5:730:95: STYLE: input text line longer than 80 bytes: 
that matches the reg...
mandoc: rsyslog.conf.5:733:102: STYLE: input text line longer than 80 bytes: 
Also, extraction can...
mandoc: rsyslog.conf.5:734:98: STYLE: input text line longer than 80 bytes: in 
its current defin...
mandoc: rsyslog.conf.5:735:96: STYLE: input text line longer than 80 bytes: 
default is TAB (US-A...
mandoc: rsyslog.conf.5:736:106: STYLE: input text line longer than 80 bytes: 
specifying a comma a...
mandoc: rsyslog.conf.5:737:103: STYLE: input text line longer than 80 bytes: to 
use comma (",") a...
mandoc: rsyslog.conf.5:738:101: STYLE: input text line longer than 80 bytes: 
this is a quicker wa...
mandoc: rsyslog.conf.5:739:105: STYLE: input text line longer than 80 bytes: 
counting starts at 1...
mandoc: rsyslog.conf.5:740:105: STYLE: input text line longer than 80 bytes: 
happens if a field n...
mandoc: rsyslog.conf.5:741:104: STYLE: input text line longer than 80 bytes: 
must be placed in th...
mandoc: rsyslog.conf.5:742:97: STYLE: input text line longer than 80 bytes: 
property is extracte...
mandoc: rsyslog.conf.5:745:105: STYLE: input text line longer than 80 bytes: 
Please note that the...
mandoc: rsyslog.conf.5:746:102: STYLE: input text line longer than 80 bytes: 
will return an error...
mandoc: rsyslog.conf.5:750:84: STYLE: input text line longer than 80 bytes: 
Property options are...
mandoc: rsyslog.conf.5:771:245: STYLE: input text line longer than 80 bytes: 
replace control char...
mandoc: rsyslog.conf.5:777:152: STYLE: input text line longer than 80 bytes: 
drop control charact...
mandoc: rsyslog.conf.5:802:98: STYLE: input text line longer than 80 bytes: The 
complete documen...
mandoc: rsyslog.conf.5:808:98: STYLE: input text line longer than 80 bytes: 
Please note that the...
mandoc: rsyslog.conf.5:809:96: STYLE: input text line longer than 80 bytes: the 
HTML documentati...

-.-.

Change two HYPHEN-MINUSES (code 0x2D) to an em-dash (\(em),
if one is intended.  An en-dash is usually surrounded by a space,
while an em-dash is used without spaces.
"man" (1 byte characters in input) transforms an en-dash (\(en) to one
HYPHEN-MINUS,
and an em-dash to two HYPHEN-MINUSES without considering the space
around it.
If "--" are two single "-" (end of options) then use "\-\-".

rsyslog.conf.5:460:   \\ = \\\\ --> '\\' is used to escape (as in C)
rsyslog.conf.5:728:by the string "--end". It denotes the end of the regular 
expression and will not become part of it.
rsyslog.conf.5:731:expression is: "%msg:R:.*Sev:. \\(.*\\) \\[.*--end%"

-.-.

Change (or include a "FIXME" paragraph about) misused SI (metric)
numeric prefixes (or names) to the binary ones, like Ki (kibi), Mi
(mebi), Gi (gibi), or Ti (tebi), if indicated.
If the metric prefixes are correct, add the definitions or an
explanation to avoid misunderstanding.

442:.B $template MyTemplateName,"\\\\7Text %property% some more 
text\\\\n",<options>
560:$template wallmsg,"\\r\\n\\7Message from syslogd@%HOSTNAME% at 
%timegenerated%"

-.-.

Mark a full stop (.) and the exclamation mark (!) with "\&",
if it does not mean an end of a sentence.
This is a preventive action,
the paragraph could be reshaped, e.g., after changes.

When typing, one does not always notice when the line wraps after the
period.
There are too many examples of input lines in manual pages,
that end with an abbreviation point.

This marking is robust, and independent of the position on the line.

It corresponds to "\ " in TeX, and to "@:" in Texinfo.


175:specifies the subsystem that produced the message, i.e. all mail programs 
log
231:An easier approach is probably to do if ... then based matching in script.
356:must start with a $-sign, e.g. if you would like to bind your output 
channel definition "mychannel"
610:or manipulate the value, e.g. by converting all characters to lower case.
649:the PRI part of the message in a textual form (e.g. "syslog.info")
719:(e.g. %msg:10:$%, which will extract from position 10 to the end of the 
string).
731:expression is: "%msg:R:.*Sev:. \\(.*\\) \\[.*--end%"

-.-.

Define a string "El" for an ellipsis, to avoid problems with the
full stops (can act as a control character or indicate the end of a
sentence).
Simplifies changes around this string (character)
.ds El \&.\^.\^.\&\"
  or
.ds El \&.\|.\|.\&\"


rsyslog.conf.5:231:An easier approach is probably to do if ... then based 
matching in script.

-.-.

Use "\e" to print the escape character instead of "\\" (which gets
interpreted in copy mode).

446:contains a template. The backslash is an escape character. For example, \\7 
rings the
447:bell (this is an ASCII value), \\n is a new line. The set in rsyslog is a 
bit restricted
458:   % = \\%
460:   \\ = \\\\ --> '\\' is used to escape (as in C)
462:$template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag%%msg%\\n"
490:("\'" and "\\") inside each field. Please note that in MySQL configuration, 
the NO_BACKSLASH_ESCAPES
534:%syslogtag%%msg:::drop-last-lf%\\n"
542:%syslogtag%,%msg%\\n"
554:$template usermsg," XXXX%syslogtag%%msg%\\n\\r"
560:$template wallmsg,"\\r\\n\\7Message from syslogd@%HOSTNAME% at 
%timegenerated%"
569:into systemevents\\r\\n", SQL
731:expression is: "%msg:R:.*Sev:. \\(.*\\) \\[.*--end%"

-.-.

Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-),
if it
is in front of a name for an option,
is a symbol for standard input,
is a single character used to indicate an option,
or is in the NAME section (man-pages(7)).
N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen
(0x2010, groff \[u2010] or \[hy]) in the output.

1:.\" rsyslog.conf - rsyslogd(8) configuration file
18:.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
78:Input plugin for UDP syslog. Replaces the deprecated -r option. Can be
86:Input plugin for plain TCP syslog. Replaces the deprecated -t
168:below correspond to the similar LOG_-values in /usr/include/syslog.h.
262:file path with a minus sign ("-").
328:is happening with the system. To specify this wall(1)-feature use an 
":omusrmsg:*".
334:use any other schema of your liking - you just need to define a proper 
template and assign this
356:must start with a $-sign, e.g. if you would like to bind your output 
channel definition "mychannel"
432:Every output in rsyslog uses templates - this holds true for files, user
460:   \\ = \\\\ --> '\\' is used to escape (as in C)
479:See details below. Be sure NOT to mistake template options with property 
options - the
517:vulnerable to SQL injection. The sql option can also be useful with files -
520:it - among others, it takes some toll on the processing time. Not much, but 
on
646:PRI part of the message - undecoded (single value)
652:the monitorware InfoUnitType - used when talking to a MonitorWare backend 
(also for phpLogCon)
655:the facility from the message - in numerical form
658:the facility from the message - in text form
661:severity from the message - in numerical form
664:severity from the message - in text form
709:Properties starting with a $-sign are so-called system properties. These do 
NOT stem from the
728:by the string "--end". It denotes the end of the regular expression and 
will not become part of it.
731:expression is: "%msg:R:.*Sev:. \\(.*\\) \\[.*--end%"
777:drop control characters - the resulting string will neither contain control 
characters, escape sequences nor any other replacement character like space.

-.-.

Find a repeated word

! 357 --> all

-.-.

Add a comma (or \&) after "e.g." and "i.e.", or use English words
(man-pages(7)).
Abbreviation points should be protected against being interpreted as
an end of sentence, if they are not, and that independent of the
current place on the line.

175:specifies the subsystem that produced the message, i.e. all mail programs 
log
356:must start with a $-sign, e.g. if you would like to bind your output 
channel definition "mychannel"
610:or manipulate the value, e.g. by converting all characters to lower case.
649:the PRI part of the message in a textual form (e.g. "syslog.info")
719:(e.g. %msg:10:$%, which will extract from position 10 to the end of the 
string).

-.-.

Wrong distance between sentences.

  Separate the sentences and subordinate clauses; each begins on a new
line.  See man-pages(7) ("Conventions for source file layout") and
"info groff" ("Input Conventions").

  The best procedure is to always start a new sentence on a new line,
at least, if you are typing on a computer.

Remember coding: Only one command ("sentence") on each (logical) line.

E-mail: Easier to quote exactly the relevant lines.

Generally: Easier to edit the sentence.

Patches: Less unaffected text.

Search for two adjacent words is easier, when they belong to the same line,
and the same phrase.

  The amount of space between sentences in the output can then be
controlled with the ".ss" request.

N.B.

  The number of lines affected can be too large to be in the patch.

31:manpage. Rsyslog.conf is backward-compatible with sysklogd's syslog.conf 
file. So if you migrate
45:Rsyslog has a modular design. Consequently, there is a growing number
46:of modules. See the HTML documentation for their full description.
78:Input plugin for UDP syslog. Replaces the deprecated -r option. Can be
86:Input plugin for plain TCP syslog. Replaces the deprecated -t
87:option. Can be used like this:
95:Input plugin for the RELP protocol. RELP can be used instead
97:syslog messages. Please note that plain TCP syslog does NOT
114:Kernel logging. To include kernel log messages, you need to do
122:Unix sockets, including the system log socket. You need to specify
126:in order to receive log messages from local system processes. This
141:a dollar-sign. The complete list of global directives can be found in HTML 
documentation in doc
146:Templates allow you to specify format of the logged message. They are also 
used for dynamic
147:file name generation. They have to be defined before they are used in 
rules. For more info
153:They have to be defined before they are used in rules. For more info about 
output channels
158:Every rule line consists of two fields, a selector field and an action 
field. These
159:two fields are separated by one or more spaces or tabs. The selector field 
specifies
165:priority, separated by a period ('.'). Both parts are case insensitive and 
can
167:Both facilities and priorities are described in syslog(3). The names 
mentioned
172:local0 through local7. The keyword security should not be used anymore and 
mark
174:Anyway, you may want to specify and redirect these messages here. The 
facility
175:specifies the subsystem that produced the message, i.e. all mail programs 
log
180:emerg, panic (same as emerg). The keywords error, warn and panic are 
deprecated
181:and should not be used anymore. The priority defines the severity of the 
message.
184:priority and higher are logged according to the given action. Rsyslogd 
behaves
189:priorities, depending on where it is used (before or after the period). The
193:statement using the comma (',') operator. You may specify as much 
facilities as
194:you want. Remember that only the facility part from such a statement is 
taken, a
198:(';') separator. Remember that each selector in the selector field is 
capable
199:to overwrite the preceding ones. Using this behavior you can exclude some
203:more intuitively. You may precede every priority with an equals sign ('=') 
to
204:specify only this single priority and not any of the above. You may also 
(both
206:all that priorities, either exact this one or this and any higher priority. 
If
211:BSD syslog behaviour. These restrictions stem back to sysklogd, exist
226:not want to match. For the above case, this selector is equivalent to the
231:An easier approach is probably to do if ... then based matching in script.
234:The action field of a rule describes what to do with the message. In 
general, message content
235:is written to a kind of "logfile". But also other actions might be done, 
like writing to a
239:Typically messages are logged to real files. The file has to be specified 
with full pathname,
248:just remove the ";RSYSLOG_TraditionalFormat". That will select the default
256:By default, files are not synced after each write. To enable syncing
258:directive or the "sync" parameter to omfile. Enabling this option
265:This version of rsyslogd(8) has support for logging output to named pipes 
(fifos). A fifo or
267:to the name of the file. This is handy for debugging. Note that the fifo 
must be created with
280:To forward it via plain tcp, prepend two at signs ("@@"). To forward via 
RELP, prepend the
289:port defaults to 514. Due to the nature of UDP, you will probably lose some 
messages in transit.
302:the device eth0. TCP can be used by setting Protocol to "tcp" in the above 
example.
316:forwarding. For full details, please see the HTML documentation.
319:Usually critical messages are also directed to ``root'' on that machine. You
322:by the login name. You may specify more than one
323:user by separating them with commas (','). If they're logged in they
328:is happening with the system. To specify this wall(1)-feature use an 
":omusrmsg:*".
332:By default, a MonitorWare-compatible schema is required for this to work. 
You can
333:create that schema with the createDB.SQL file that came with the rsyslog 
package. You can also
340:If the discard action is carried out, the received message is immediately 
discarded. Discard
342:fill your log files. To do that, place the discard actions early in your 
log files.
355:Binds an output channel definition (see there for details) to this action. 
Output channel actions
356:must start with a $-sign, e.g. if you would like to bind your output 
channel definition "mychannel"
357:to the action, use "$mychannel". Output channels support template 
definitions like all all other
361:This executes a program in a subshell. The program is passed the 
template-generated message as the
362:only command line parameter. Rsyslog waits until the program terminates and 
only then continues to run.
369:The program-to-execute can be any valid executable. It receives the 
template string as a single parameter
385:effective and also needed for compatibility with stock syslogd 
configuration files. If you just
386:need to filter based on priority and facility, you should do this with 
selector lines. They are
390:Property-based filters are unique to rsyslogd. They allow one to filter on 
any property, like HOSTNAME,
393:A property-based filter must start with a colon in column 0. This tells 
rsyslogd that it is the new
394:filter type. The colon must be followed by the property name, a comma, the 
name of the compare
395:operation to carry out, another comma and then the value to compare 
against. This value must be quoted.
396:There can be spaces and tabs between the commas. Property names and compare 
operations are
397:case-sensitive, so "msg" works, while "MSG" is an invalid property name. In 
brief, the syntax is as follows:
413:Compares the "value" string provided and the property contents. These two 
values must be exactly equal to match.
433:messages and so on. Templates compatible with the stock syslogd
434:formats are hardcoded into rsyslogd. If no template is specified, we use
435:one of these hardcoded templates. Search for "template_" in syslogd.c and
439:and optional options. A sample is:
445:The "$template" is the template directive. It tells rsyslog that this line
446:contains a template. The backslash is an escape character. For example, \\7 
rings the
447:bell (this is an ASCII value), \\n is a new line. The set in rsyslog is a 
bit restricted
451:signs. These are properties and allow you access to the contents of the 
syslog
452:message. Properties are accessed via the property replacer and it can for 
example
453:pick a substring or do date-specific formatting. More on this is the 
PROPERTY REPLACER
474:This template can then be used when defining an output selector line. It 
will
478:The <options> part is optional. It carries options influencing the template 
as whole.
479:See details below. Be sure NOT to mistake template options with property 
options - the
483:Template options are case-insensitive. Currently defined are:
488:format the string suitable for a SQL statement in MySQL format. This will 
replace single
490:("\'" and "\\") inside each field. Please note that in MySQL configuration, 
the NO_BACKSLASH_ESCAPES
496:sql server. This will replace single quotes ("'") by two single quotes 
("''") inside each field.
508:otherwise injection might occur. Please note that due to the unfortunate 
fact
515:in the template. If it is not present, the write database action is 
disabled.
517:vulnerable to SQL injection. The sql option can also be useful with files -
519:performance reasons. However, do NOT use it if you do not have a real need 
for
520:it - among others, it takes some toll on the processing time. Not much, but 
on
526:Please note that the samples are split across multiple lines. A template 
MUST
581:Output Channels are a new concept first introduced in rsyslog 0.9.0. As of 
this writing,
586:Output channels are defined via an $outchannel directive. It's syntax is as 
follows:
594:when the max size is reached. This command always has exactly one 
parameter. The binary is
598:Keep in mind that $outchannel just defines a channel with "name". It does 
not activate it.
599:To do so, you must use a selector line (see below). That selector line 
includes the channel
600:name plus ":omfile:$" in front of it. A sample might be:
607:The property replacer is a core component in rsyslogd's output system. A 
syslog message has
608:a number of well-defined properties (see below). Each of this properties 
can be accessed and
609:manipulated by the property replacer. With it, it is easy to use only part 
of a property value
610:or manipulate the value, e.g. by converting all characters to lower case.
613:Syslog message properties are used inside templates. They are accessed by 
putting them between
614:percent signs. Properties can be modified by the property replacer. The 
full syntax is as follows:
629:the message exactly as it was received from the socket. Should be useful 
for debugging.
642:the "static" part of the tag, as defined by BSD syslogd. For example, when 
TAG is "named[12345]",
649:the PRI part of the message in a textual form (e.g. "syslog.info")
667:timestamp when the message was RECEIVED. Always in high resolution
670:timestamp from the message. Resolution depends on what was provided in the 
message (in most cases, only seconds)
709:Properties starting with a $-sign are so-called system properties. These do 
NOT stem from the
713:FromChar and toChar are used to build substrings. They specify the offset 
within the string that
714:should be copied. Offset counting starts at 1, so if you need to obtain the 
first 2 characters of
715:the message text, you can use this syntax: "%msg:1:2%". If you do not wish 
to specify from and to,
716:but you want to specify options, you still need to include the colons. For 
example, if you would
717:like to convert the full message text to lower case, use 
"%msg:::lowercase%". If you would like to
719:(e.g. %msg:10:$%, which will extract from position 10 to the end of the 
string).
724:This tells rsyslog that a regular expression instead of position-based 
extraction is desired. The
727:then be provided in toChar. The regular expression must be followed
728:by the string "--end". It denotes the end of the regular expression and 
will not become part of it.
730:that matches the regular expression. An example for a property replacer 
sequence with a regular
731:expression is: "%msg:R:.*Sev:. \\(.*\\) \\[.*--end%"
733:Also, extraction can be done based on so-called "fields". To do so, place a 
"F" into FromChar. A field
734:in its current definition is anything that is delimited by a delimiter 
character. The delimiter by
735:default is TAB (US-ASCII value 9). However, if can be changed to any other 
US-ASCII character by
736:specifying a comma and the decimal US-ASCII value of the delimiter 
immediately after the "F". For example,
738:this is a quicker way to extract than via regular expressions (actually, a 
*much* quicker way). Field
739:counting starts at 1. Field zero is accepted, but will always lead to a 
"field not found" error. The same
740:happens if a field number higher than the number of fields in the property 
is requested. The field number
741:must be placed in the "ToChar" parameter. An example where the 3rd field 
(delimited by TAB) from the msg
742:property is extracted is as follows: "%msg:F:3%". The same example with 
semicolon as delimiter is
745:Please note that the special characters "F" and "R" are case-sensitive. 
Only upper case works, lower case
746:will return an error. There are no white spaces permitted inside the 
sequence (that will lead to error
750:Property options are case-insensitive. Currently, the following options are 
defined:
759:The last LF in the message (if any), is dropped. Especially useful for PIX.
771:replace control characters (ASCII value 127 and values less then 32) with 
an escape sequence. The sequence is "#<charval>" where charval is the 3-digit 
decimal value of the control character. For example, a tabulator would be 
replaced by "#009".
781:(like remote syslogd's or database servers being down). When running in
783:(on an as-needed basis). Queues survive rsyslogd restarts.
808:Please note that the man page reflects only a subset of the configuration 
options. Be sure to read
809:the HTML documentation for all features and details. This is especially 
vital if you plan to set

-.-.

Split lines longer than 80 characters into two or more lines.
Appropriate break points are the end of a sentence and a subordinate
clause; after punctuation marks.

N.B.

  The number of lines affected can be too large to be in the patch.


Line 20, length 82

.TH RSYSLOG.CONF 5 "22 October 2012" "Version 7.2.0" "Linux System 
Administration"

Line 31, length 96

manpage. Rsyslog.conf is backward-compatible with sysklogd's syslog.conf file. 
So if you migrate

Line 34, length 87

.B Note that this version of rsyslog ships with extensive documentation in HTML 
format.

Line 134, length 85

Rsyslog.conf should contain following sections (sorted by recommended order in 
file):

Line 138, length 94

Global directives set some global properties of whole rsyslog daemon, for 
example size of main

Line 139, length 85

message queue ($MainMessageQueueSize), loading external modules ($ModLoad) and 
so on.

Line 140, length 85

All global directives need to be specified on a line by their own and must 
start with

Line 141, length 95

a dollar-sign. The complete list of global directives can be found in HTML 
documentation in doc

Line 146, length 91

Templates allow you to specify format of the logged message. They are also used 
for dynamic

Line 147, length 90

file name generation. They have to be defined before they are used in rules. 
For more info

Line 152, length 84

Output channels provide an umbrella for any type of output that the user might 
want.

Line 153, length 90

They have to be defined before they are used in rules. For more info about 
output channels

Line 158, length 83

Every rule line consists of two fields, a selector field and an action field. 
These

Line 159, length 84

two fields are separated by one or more spaces or tabs. The selector field 
specifies

Line 181, length 81

and should not be used anymore. The priority defines the severity of the 
message.

Line 234, length 93

The action field of a rule describes what to do with the message. In general, 
message content

Line 235, length 90

is written to a kind of "logfile". But also other actions might be done, like 
writing to a

Line 239, length 93

Typically messages are logged to real files. The file has to be specified with 
full pathname,

Line 244, length 113

*.*     /var/log/traditionalfile.log;RSYSLOG_TraditionalFileFormat      # log 
to a file in the traditional format

Line 265, length 92

This version of rsyslogd(8) has support for logging output to named pipes 
(fifos). A fifo or

Line 266, length 90

named pipe can be used as a destination for log messages by prepending a pipe 
symbol ('|')

Line 267, length 93

to the name of the file. This is handy for debugging. Note that the fifo must 
be created with

Line 271, length 89

If the file you specified is a tty, special tty-handling is done, same with 
/dev/console.

Line 274, length 90

There are three ways to forward message: the traditional UDP transport, which 
is extremely

Line 275, length 90

lossy but standard, the plain TCP based transport which loses messages only 
during certain

Line 276, length 86

situations but is widely available and the RELP transport which does not lose 
messages

Line 279, length 89

To forward messages to another host via UDP, prepend the hostname with the at 
sign ("@").

Line 280, length 90

To forward it via plain tcp, prepend two at signs ("@@"). To forward via RELP, 
prepend the

Line 288, length 96

In the example above, messages are forwarded via UDP to the machine 
192.168.0.1, the destination

Line 289, length 96

port defaults to 514. Due to the nature of UDP, you will probably lose some 
messages in transit.

Line 290, length 95

If you expect high traffic volume, you can expect to lose a quite noticeable 
number of messages

Line 293, length 94

Sockets for forwarded messages can be bound to a specific device using the 
"device" option for

Line 301, length 96

In the example above, messages are forwarded via UDP to the machine 192.168.0.1 
at port 514 over

Line 302, length 83

the device eth0. TCP can be used by setting Protocol to "tcp" in the above 
example.

Line 304, length 90

For Linux with VRF support, the device option is used to specify the VRF to 
send messages.

Line 313, length 94

Keep in mind that you need to load the correct input and output plugins (see 
"Modules" above).

Line 327, length 95

Emergency messages often go to all users currently online to notify them that 
something strange

Line 328, length 83

is happening with the system. To specify this wall(1)-feature use an 
":omusrmsg:*".

Line 332, length 81

By default, a MonitorWare-compatible schema is required for this to work. You 
can

Line 333, length 94

create that schema with the createDB.SQL file that came with the rsyslog 
package. You can also

Line 334, length 95

use any other schema of your liking - you just need to define a proper template 
and assign this

Line 340, length 92

If the discard action is carried out, the received message is immediately 
discarded. Discard

Line 341, length 93

can be highly effective if you want to filter out some annoying messages that 
otherwise would

Line 342, length 83

fill your log files. To do that, place the discard actions early in your log 
files.

Line 343, length 89

This often plays well with property-based filters, giving you great freedom in 
specifying

Line 355, length 97

Binds an output channel definition (see there for details) to this action. 
Output channel actions

Line 356, length 99

must start with a $-sign, e.g. if you would like to bind your output channel 
definition "mychannel"

Line 357, length 96

to the action, use "$mychannel". Output channels support template definitions 
like all all other

Line 361, length 98

This executes a program in a subshell. The program is passed the 
template-generated message as the

Line 362, length 103

only command line parameter. Rsyslog waits until the program terminates and 
only then continues to run.

Line 369, length 105

The program-to-execute can be any valid executable. It receives the template 
string as a single parameter

Line 384, length 91

They have been kept in rsyslog with their original syntax, because it is 
well-known, highly

Line 385, length 95

effective and also needed for compatibility with stock syslogd configuration 
files. If you just

Line 386, length 95

need to filter based on priority and facility, you should do this with selector 
lines. They are

Line 387, length 81

not second-class citizens in rsyslog and offer the best performance for this 
job.

Line 390, length 103

Property-based filters are unique to rsyslogd. They allow one to filter on any 
property, like HOSTNAME,

Line 393, length 99

A property-based filter must start with a colon in column 0. This tells 
rsyslogd that it is the new

Line 394, length 94

filter type. The colon must be followed by the property name, a comma, the name 
of the compare

Line 395, length 103

operation to carry out, another comma and then the value to compare against. 
This value must be quoted.

Line 396, length 90

There can be spaces and tabs between the commas. Property names and compare 
operations are

Line 397, length 108

case-sensitive, so "msg" works, while "MSG" is an invalid property name. In 
brief, the syntax is as follows:

Line 413, length 112

Compares the "value" string provided and the property contents. These two 
values must be exactly equal to match.

Line 446, length 85

contains a template. The backslash is an escape character. For example, \\7 
rings the

Line 447, length 88

bell (this is an ASCII value), \\n is a new line. The set in rsyslog is a bit 
restricted

Line 452, length 81

message. Properties are accessed via the property replacer and it can for 
example

Line 453, length 86

pick a substring or do date-specific formatting. More on this is the PROPERTY 
REPLACER

Line 466, length 98

.B Please note that templates can also by used to generate selector lines with 
dynamic file names.

Line 478, length 85

The <options> part is optional. It carries options influencing the template as 
whole.

Line 479, length 86

See details below. Be sure NOT to mistake template options with property 
options - the

Line 480, length 86

later ones are processed by the property replacer and apply to a SINGLE 
property, only

Line 488, length 88

format the string suitable for a SQL statement in MySQL format. This will 
replace single

Line 490, length 100

("\'" and "\\") inside each field. Please note that in MySQL configuration, the 
NO_BACKSLASH_ESCAPES

Line 495, length 90

format the string suitable for a SQL statement that is to be sent to a 
standards-compliant

Line 496, length 96

sql server. This will replace single quotes ("'") by two single quotes ("''") 
inside each field.

Line 497, length 90

You must use stdsql together with MySQL if in MySQL configuration the 
NO_BACKSLASH_ESCAPES

Line 563, length 94

.B A template that can be used for writing to a database (please note the SQL 
template option)

Line 581, length 88

Output Channels are a new concept first introduced in rsyslog 0.9.0. As of this 
writing,

Line 582, length 82

it is most likely that they will be replaced by something different in the 
future.

Line 583, length 88

So if you use them, be prepared to change you configuration file syntax when 
you upgrade

Line 586, length 84

Output channels are defined via an $outchannel directive. It's syntax is as 
follows:

Line 592, length 87

name is the name of the output channel (not the file), file-name is the file 
name to be

Line 593, length 91

written to, max-size the maximum allowed size and action-on-max-size a command 
to be issued

Line 594, length 90

when the max size is reached. This command always has exactly one parameter. 
The binary is

Line 595, length 90

that part of action-on-max-size before the first space, its parameter is 
everything behind

Line 598, length 90

Keep in mind that $outchannel just defines a channel with "name". It does not 
activate it.

Line 599, length 91

To do so, you must use a selector line (see below). That selector line includes 
the channel

Line 607, length 91

The property replacer is a core component in rsyslogd's output system. A syslog 
message has

Line 608, length 92

a number of well-defined properties (see below). Each of this properties can be 
accessed and

Line 609, length 94

manipulated by the property replacer. With it, it is easy to use only part of a 
property value

Line 613, length 94

Syslog message properties are used inside templates. They are accessed by 
putting them between

Line 614, length 98

percent signs. Properties can be modified by the property replacer. The full 
syntax is as follows:

Line 629, length 87

the message exactly as it was received from the socket. Should be useful for 
debugging.

Line 635, length 102

hostname of the system the message was received from (in a relay chain, this is 
the system immediately

Line 642, length 97

the "static" part of the tag, as defined by BSD syslogd. For example, when TAG 
is "named[12345]",

Line 652, length 94

the monitorware InfoUnitType - used when talking to a MonitorWare backend (also 
for phpLogCon)

Line 670, length 112

timestamp from the message. Resolution depends on what was provided in the 
message (in most cases, only seconds)

Line 676, length 85

The contents of the PROTOCOL-VERSION field from IETF draft 
draft-ietf-syslog-protocol

Line 679, length 84

The contents of the STRUCTURED-DATA field from IETF draft 
draft-ietf-syslog-protocol

Line 709, length 93

Properties starting with a $-sign are so-called system properties. These do NOT 
stem from the

Line 713, length 96

FromChar and toChar are used to build substrings. They specify the offset 
within the string that

Line 714, length 97

should be copied. Offset counting starts at 1, so if you need to obtain the 
first 2 characters of

Line 715, length 98

the message text, you can use this syntax: "%msg:1:2%". If you do not wish to 
specify from and to,

Line 716, length 96

but you want to specify options, you still need to include the colons. For 
example, if you would

Line 717, length 98

like to convert the full message text to lower case, use "%msg:::lowercase%". 
If you would like to

Line 718, length 96

extract from a position until the end of the string, you can place a 
dollar-sign ("$") in toChar

Line 724, length 97

This tells rsyslog that a regular expression instead of position-based 
extraction is desired. The

Line 728, length 99

by the string "--end". It denotes the end of the regular expression and will 
not become part of it.

Line 729, length 101

If you are using regular expressions, the property replacer will return the 
part of the property text

Line 730, length 95

that matches the regular expression. An example for a property replacer 
sequence with a regular

Line 733, length 102

Also, extraction can be done based on so-called "fields". To do so, place a "F" 
into FromChar. A field

Line 734, length 98

in its current definition is anything that is delimited by a delimiter 
character. The delimiter by

Line 735, length 96

default is TAB (US-ASCII value 9). However, if can be changed to any other 
US-ASCII character by

Line 736, length 106

specifying a comma and the decimal US-ASCII value of the delimiter immediately 
after the "F". For example,

Line 737, length 103

to use comma (",") as a delimiter, use this field specifier: "F,44".  If your 
syslog data is delimited,

Line 738, length 101

this is a quicker way to extract than via regular expressions (actually, a 
*much* quicker way). Field

Line 739, length 105

counting starts at 1. Field zero is accepted, but will always lead to a "field 
not found" error. The same

Line 740, length 105

happens if a field number higher than the number of fields in the property is 
requested. The field number

Line 741, length 104

must be placed in the "ToChar" parameter. An example where the 3rd field 
(delimited by TAB) from the msg

Line 742, length 97

property is extracted is as follows: "%msg:F:3%". The same example with 
semicolon as delimiter is

Line 745, length 105

Please note that the special characters "F" and "R" are case-sensitive. Only 
upper case works, lower case

Line 746, length 102

will return an error. There are no white spaces permitted inside the sequence 
(that will lead to error

Line 750, length 84

Property options are case-insensitive. Currently, the following options are 
defined:

Line 771, length 245

replace control characters (ASCII value 127 and values less then 32) with an 
escape sequence. The sequence is "#<charval>" where charval is the 3-digit 
decimal value of the control character. For example, a tabulator would be 
replaced by "#009".

Line 777, length 152

drop control characters - the resulting string will neither contain control 
characters, escape sequences nor any other replacement character like space.

Line 802, length 98

The complete documentation can be found in the doc folder of the rsyslog 
distribution or online at

Line 808, length 98

Please note that the man page reflects only a subset of the configuration 
options. Be sure to read

Line 809, length 96

the HTML documentation for all features and details. This is especially vital 
if you plan to set


-.-.

Use \(en (en-dash) for a dash between space characters,
not a minus (\-) or a hyphen (-), except in the NAME section.

rsyslog.conf.5:1:.\" rsyslog.conf - rsyslogd(8) configuration file
rsyslog.conf.5:18:.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 
02111, USA.
rsyslog.conf.5:334:use any other schema of your liking - you just need to 
define a proper template and assign this
rsyslog.conf.5:432:Every output in rsyslog uses templates - this holds true for 
files, user
rsyslog.conf.5:479:See details below. Be sure NOT to mistake template options 
with property options - the
rsyslog.conf.5:520:it - among others, it takes some toll on the processing 
time. Not much, but on
rsyslog.conf.5:646:PRI part of the message - undecoded (single value)
rsyslog.conf.5:652:the monitorware InfoUnitType - used when talking to a 
MonitorWare backend (also for phpLogCon)
rsyslog.conf.5:655:the facility from the message - in numerical form
rsyslog.conf.5:658:the facility from the message - in text form
rsyslog.conf.5:661:severity from the message - in numerical form
rsyslog.conf.5:664:severity from the message - in text form
rsyslog.conf.5:777:drop control characters - the resulting string will neither 
contain control characters, escape sequences nor any other replacement 
character like space.

-.-.

Protect a period (.) or an apostrophe (') with '\&' from becoming a
control character, if it could end up at the start of a line
(by splitting the line into more lines).

35:This is provided in the ./doc subdirectory and probably
231:An easier approach is probably to do if ... then based matching in script.
346:Discard is just the single 'stop' command with no further parameters.
460:   \\ = \\\\ --> '\\' is used to escape (as in C)
568:('%iut%', '%msg:::UPPERCASE%', '%timegenerated:::date-mysql%')

-.-.

Name of a manual is set in bold, the section in roman.
See man-pages(7).

328:is happening with the system. To specify this wall(1)-feature use an 
":omusrmsg:*".

-.-.

Change a HYPHEN-MINUS (code 0x55, 2D) to a dash
(\-, minus) if it matches "[[:alph:]]-[[:alpha:]]" in the name of an
option).
Facilitates the copy and paste of an option in UTF-8 text.
Is not needed in ordinary words like "mother-in-law", that are not
copied and pasted to a command line (which needs ASCII code)

534:%syslogtag%%msg:::drop-last-lf%\\n"
xOutput from "test-groff -b -mandoc -rF0 -rHY=0 -K utf8 -t -ww -z ":

-.-

an.tmac:<stdin>:93: warning: cannot nest .TP or .TQ inside .TP; supply a tag

--- rsyslog.conf.5      2024-06-10 22:53:02.094904943 +0000
+++ rsyslog.conf.5.new  2024-06-11 00:16:03.684405778 +0000
@@ -32,7 +32,7 @@ manpage. Rsyslog.conf is backward-compat
 from sysklogd you can rename it and it should work.
 
 .B Note that this version of rsyslog ships with extensive documentation in 
HTML format.
-This is provided in the ./doc subdirectory and probably
+This is provided in the \&./doc subdirectory and probably
 in a separate package if you installed rsyslog via a packaging system.
 To use rsyslog's advanced features, you
 .B need
@@ -75,7 +75,7 @@ SQLite, Ingres, Oracle, mSQL)
 Input module for text files
 .TP
 .I imudp
-Input plugin for UDP syslog. Replaces the deprecated -r option. Can be
+Input plugin for UDP syslog. Replaces the deprecated \-r option. Can be
 used like this:
 .IP
 $ModLoad imudp
@@ -83,14 +83,13 @@ $ModLoad imudp
 $UDPServerRun 514
 .TP
 .I imtcp
-Input plugin for plain TCP syslog. Replaces the deprecated -t
+Input plugin for plain TCP syslog. Replaces the deprecated \-t
 option. Can be used like this:
 .IP
 $ModLoad imtcp
 .IP
 $InputTCPServerRun 514
 .TP
-.TP
 .I imrelp
 Input plugin for the RELP protocol. RELP can be used instead
 of UDP or plain TCP syslog to provide reliable delivery of
@@ -164,7 +163,9 @@ a pattern of facilities and priorities b
 The selector field itself again consists of two parts, a facility and a
 priority, separated by a period ('.'). Both parts are case insensitive and can
 also be specified as decimal numbers, but don't do that, you have been warned.
-Both facilities and priorities are described in syslog(3). The names mentioned
+Both facilities and priorities are described in
+.BR syslog (3).
+The names mentioned
 below correspond to the similar LOG_-values in /usr/include/syslog.h.
 
 The facility is one of the following keywords: auth, authpriv, cron, daemon,
@@ -172,7 +173,7 @@ kern, lpr, mail, mark, news, security (s
 local0 through local7. The keyword security should not be used anymore and mark
 is only for internal use and therefore should not be used in applications.
 Anyway, you may want to specify and redirect these messages here. The facility
-specifies the subsystem that produced the message, i.e. all mail programs log
+specifies the subsystem that produced the message, i.e., all mail programs log
 with the mail facility (LOG_MAIL) if they log using syslog.
 
 The priority is one of the following keywords, in ascending order: debug, info,
@@ -184,7 +185,9 @@ The behavior of the original BSD syslogd
 priority and higher are logged according to the given action. Rsyslogd behaves
 the same, but has some extensions.
 
-In addition to the above mentioned names the rsyslogd(8) understands the
+In addition to the above mentioned names the
+.BR rsyslogd (8)
+understands the
 following extensions: An asterisk ('*') stands for all facilities or all
 priorities, depending on where it is used (before or after the period). The
 keyword none stands for no priority of the given facility.
@@ -228,7 +231,7 @@ BSD syslog selector:
 
 *.debug;local6.!=info;local6.!=notice;local6.!=warn
 
-An easier approach is probably to do if ... then based matching in script.
+An easier approach is probably to do if \&...\& then based matching in script.
 
 .SH ACTIONS
 The action field of a rule describes what to do with the message. In general, 
message content
@@ -259,13 +262,19 @@ directive or the "sync" parameter to omf
 degrades performance and it is advised not to enable syncing unless
 you know what you are doing.
 To selectively disable syncing for certain files, you may prefix the
-file path with a minus sign ("-").
+file path with a minus sign ("\-").
 
 .SS Named pipes
-This version of rsyslogd(8) has support for logging output to named pipes 
(fifos). A fifo or
+This version of
+.BR rsyslogd (8)
+has support for logging output to named pipes (fifos). A fifo or
 named pipe can be used as a destination for log messages by prepending a pipe 
symbol ('|')
 to the name of the file. This is handy for debugging. Note that the fifo must 
be created with
-the mkfifo(1) command before rsyslogd(8) is started.
+the
+.BR mkfifo (1)
+command before
+.BR rsyslogd (8)
+is started.
 
 .SS Terminal and console
 If the file you specified is a tty, special tty-handling is done, same with 
/dev/console.
@@ -325,13 +334,15 @@ get the message (for example: ":omusrmsg
 
 .SS Everyone logged on
 Emergency messages often go to all users currently online to notify them that 
something strange
-is happening with the system. To specify this wall(1)-feature use an 
":omusrmsg:*".
+is happening with the system. To specify this
+.BR wall (1)-feature
+use an ":omusrmsg:*".
 
 .SS Database table
 This allows logging of the message to a database table.
 By default, a MonitorWare-compatible schema is required for this to work. You 
can
 create that schema with the createDB.SQL file that came with the rsyslog 
package. You can also
-use any other schema of your liking - you just need to define a proper 
template and assign this
+use any other schema of your liking \(en you just need to define a proper 
template and assign this
 template to the action.
 
 See the HTML documentation for further details on database logging.
@@ -343,7 +354,7 @@ fill your log files. To do that, place t
 This often plays well with property-based filters, giving you great freedom in 
specifying
 what you do not want.
 
-Discard is just the single 'stop' command with no further parameters.
+Discard is just the single \&'stop' command with no further parameters.
 .sp
 .B Example:
 .RS
@@ -353,8 +364,8 @@ Discard is just the single 'stop' comman
 
 .SS Output channel
 Binds an output channel definition (see there for details) to this action. 
Output channel actions
-must start with a $-sign, e.g. if you would like to bind your output channel 
definition "mychannel"
-to the action, use "$mychannel". Output channels support template definitions 
like all all other
+must start with a $-sign, e.g., if you would like to bind your output channel 
definition "mychannel"
+to the action, use "$mychannel". Output channels support template definitions 
like all other
 actions.
 
 .SS Shell execute
@@ -422,6 +433,7 @@ Checks if the value is found exactly at
 .RS
 Compares the property against the provided regular expression.
 .RE
+.RE
 
 .SS Expression-Based Filters
 See the HTML documentation for this feature.
@@ -429,7 +441,7 @@ See the HTML documentation for this feat
 
 .SH TEMPLATES
 
-Every output in rsyslog uses templates - this holds true for files, user
+Every output in rsyslog uses templates \(en this holds true for files, user
 messages and so on. Templates compatible with the stock syslogd
 formats are hardcoded into rsyslogd. If no template is specified, we use
 one of these hardcoded templates. Search for "template_" in syslogd.c and
@@ -439,12 +451,12 @@ A template consists of a template direct
 and optional options. A sample is:
 
 .RS
-.B $template MyTemplateName,"\\\\7Text %property% some more 
text\\\\n",<options>
+.B $template MyTemplateName,"\e7Text %property% some more text\en",<options>
 .RE
 
 The "$template" is the template directive. It tells rsyslog that this line
-contains a template. The backslash is an escape character. For example, \\7 
rings the
-bell (this is an ASCII value), \\n is a new line. The set in rsyslog is a bit 
restricted
+contains a template. The backslash is an escape character. For example, \e7 
rings the
+bell (this is an ASCII value), \en is a new line. The set in rsyslog is a bit 
restricted
 currently.
 
 All text in the template is used literally, except for things within percent
@@ -455,11 +467,11 @@ section of this manpage.
 
 To escape:
 .sp 0
-   % = \\%
+   % = \e%
 .sp 0
-   \\ = \\\\ --> '\\' is used to escape (as in C)
+   \e = \e\e \-\-> \&'\e' is used to escape (as in C)
 .sp 0
-$template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag%%msg%\\n"
+$template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag%%msg%\en"
 
 Properties can be accessed by the property replacer (see there for details).
 
@@ -468,15 +480,15 @@ For example, if you would like to split
 to different files (one per host), you can define the following template:
 
 .RS
-.B $template DynFile,"/var/log/system-%HOSTNAME%.log"
+.B $template DynFile,"/var/log/system\-%HOSTNAME%.log"
 .RE
 
 This template can then be used when defining an output selector line. It will
-result in something like "/var/log/system-localhost.log"
+result in something like "/var/log/system\-localhost.log"
 
 .SS Template options
 The <options> part is optional. It carries options influencing the template as 
whole.
-See details below. Be sure NOT to mistake template options with property 
options - the
+See details below. Be sure NOT to mistake template options with property 
options \(en the
 later ones are processed by the property replacer and apply to a SINGLE 
property, only
 (and not the whole template).
 
@@ -487,7 +499,7 @@ Template options are case-insensitive. C
 sql
 format the string suitable for a SQL statement in MySQL format. This will 
replace single
 quotes ("'") and the backslash character by their backslash-escaped counterpart
-("\'" and "\\") inside each field. Please note that in MySQL configuration, 
the NO_BACKSLASH_ESCAPES
+("\'" and "\e") inside each field. Please note that in MySQL configuration, 
the NO_BACKSLASH_ESCAPES
 mode must be turned off for this format to work (this is the default).
 
 .TP
@@ -517,7 +529,7 @@ This is to guard you against accidental
 vulnerable to SQL injection. The sql option can also be useful with files -
 especially if you want to import them into a database on another machine for
 performance reasons. However, do NOT use it if you do not have a real need for
-it - among others, it takes some toll on the processing time. Not much, but on
+it \(en among others, it takes some toll on the processing time. Not much, but 
on
 a really busy system you might notice it ;)
 
 The default template for the write to database action has the sql option set.
@@ -531,7 +543,7 @@ A template that resembles traditional sy
 .RS
 $template TraditionalFormat,"%timegenerated% %HOSTNAME%
 .sp 0
-%syslogtag%%msg:::drop-last-lf%\\n"
+%syslogtag%%msg:::drop\-last\-lf%\en"
 .RE
 
 A template that tells you a little more about the message:
@@ -539,7 +551,7 @@ A template that tells you a little more
 .RS
 $template 
precise,"%syslogpriority%,%syslogfacility%,%timegenerated%,%HOSTNAME%,
 .sp 0
-%syslogtag%,%msg%\\n"
+%syslogtag%,%msg%\en"
 .RE
 
 A template for RFC 3164 format:
@@ -551,13 +563,13 @@ $template RFC3164fmt,"<%PRI%>%TIMESTAMP%
 A template for the format traditionally used for user messages:
 .sp
 .RS
-$template usermsg," XXXX%syslogtag%%msg%\\n\\r"
+$template usermsg," XXXX%syslogtag%%msg%\en\er"
 .RE
 
 And a template with the traditional wall-message format:
 .sp
 .RS
-$template wallmsg,"\\r\\n\\7Message from syslogd@%HOSTNAME% at %timegenerated%"
+$template wallmsg,"\er\en\e7Message from syslogd@%HOSTNAME% at %timegenerated%"
 .RE
 
 .B A template that can be used for writing to a database (please note the SQL 
template option)
@@ -565,8 +577,8 @@ $template wallmsg,"\\r\\n\\7Message from
 .RS
 .ad l
 $template MySQLInsert,"insert iut, message, receivedat values
-('%iut%', '%msg:::UPPERCASE%', '%timegenerated:::date-mysql%')
-into systemevents\\r\\n", SQL
+('%iut%', \&'%msg:::UPPERCASE%', \&'%timegenerated:::date-mysql%')
+into systemevents\er\en", SQL
 
 NOTE 1: This template is embedded into core application under name
 .B StdDBFmt
@@ -607,7 +619,7 @@ name plus ":omfile:$" in front of it. A
 The property replacer is a core component in rsyslogd's output system. A 
syslog message has
 a number of well-defined properties (see below). Each of this properties can 
be accessed and
 manipulated by the property replacer. With it, it is easy to use only part of 
a property value
-or manipulate the value, e.g. by converting all characters to lower case.
+or manipulate the value, e.g., by converting all characters to lower case.
 
 .SS Accessing Properties
 Syslog message properties are used inside templates. They are accessed by 
putting them between
@@ -643,25 +655,25 @@ the "static" part of the tag, as defined
 programname is "named".
 .TP
 .B PRI
-PRI part of the message - undecoded (single value)
+PRI part of the message \(en undecoded (single value)
 .TP
 .B PRI-text
-the PRI part of the message in a textual form (e.g. "syslog.info")
+the PRI part of the message in a textual form (e.g., "syslog.info")
 .TP
 .B IUT
-the monitorware InfoUnitType - used when talking to a MonitorWare backend 
(also for phpLogCon)
+the monitorware InfoUnitType \(en used when talking to a MonitorWare backend 
(also for phpLogCon)
 .TP
 .B syslogfacility
-the facility from the message - in numerical form
+the facility from the message \(en in numerical form
 .TP
 .B syslogfacility-text
-the facility from the message - in text form
+the facility from the message \(en in text form
 .TP
 .B syslogseverity
-severity from the message - in numerical form
+severity from the message \(en in numerical form
 .TP
 .B syslogseverity-text
-severity from the message - in text form
+severity from the message \(en in text form
 .TP
 .B timegenerated
 timestamp when the message was RECEIVED. Always in high resolution
@@ -716,7 +728,7 @@ the message text, you can use this synta
 but you want to specify options, you still need to include the colons. For 
example, if you would
 like to convert the full message text to lower case, use "%msg:::lowercase%". 
If you would like to
 extract from a position until the end of the string, you can place a 
dollar-sign ("$") in toChar
-(e.g. %msg:10:$%, which will extract from position 10 to the end of the 
string).
+(e.g., %msg:10:$%, which will extract from position 10 to the end of the 
string).
 
 There is also support for
 .B regular expressions.
@@ -725,10 +737,10 @@ This tells rsyslog that a regular expres
 actual regular expression
 .B must
 then be provided in toChar. The regular expression must be followed
-by the string "--end". It denotes the end of the regular expression and will 
not become part of it.
+by the string "\-\-end". It denotes the end of the regular expression and will 
not become part of it.
 If you are using regular expressions, the property replacer will return the 
part of the property text
 that matches the regular expression. An example for a property replacer 
sequence with a regular
-expression is: "%msg:R:.*Sev:. \\(.*\\) \\[.*--end%"
+expression is: "%msg:R:.*Sev:.\& \e(.*\e) \e[.*\-\-end%"
 
 Also, extraction can be done based on so-called "fields". To do so, place a 
"F" into FromChar. A field
 in its current definition is anything that is delimited by a delimiter 
character. The delimiter by
@@ -755,7 +767,7 @@ convert property to lowercase only
 lowercase
 convert property text to uppercase only
 .TP
-drop-last-lf
+drop\-last\-lf
 The last LF in the message (if any), is dropped. Especially useful for PIX.
 .TP
 date-mysql
@@ -774,7 +786,7 @@ space-cc
 replace control characters by spaces
 .TP
 drop-cc
-drop control characters - the resulting string will neither contain control 
characters, escape sequences nor any other replacement character like space.
+drop control characters \(en the resulting string will neither contain control 
characters, escape sequences nor any other replacement character like space.
 
 .SH QUEUED OPERATIONS
 Rsyslogd supports queued operations to handle offline outputs

Reply via email to