commit 5bde8eb1b9aa570b92e89dbdc9ed0b77849f40ff
parent b9d0fd498e85e0a32d9189328a8f81f3aa86b323
Author: Gerrit Pape <pape@smarden.org>
Date: Wed, 19 Sep 2007 12:36:28 +0000
html.
Diffstat:
M | doc/svlogd.8.html | | | 209 | ++++++++++++++++++++++++++++++++++++++++--------------------------------------- |
1 file changed, 107 insertions(+), 102 deletions(-)
diff --git a/doc/svlogd.8.html b/doc/svlogd.8.html
@@ -48,122 +48,125 @@ of <i>time</i>, <i>current</i> is rotated: <p>
of <i>current</i> to 0755, renames <i>current</i> to @<i>timestamp.s,</i> and starts with a new
empty <i>current</i>. If <b>svlogd</b> sees <i>num</i> or more old log files in the log directory,
it removes the oldest one. Note that this doesn’t decrease the number of
-log files if there are already more than <i>num</i> log files.
+log files if there are already more than <i>num</i> log files, this must be done
+manually, e.g. for keeping 10 log files: <p>
+ ls -1 \@* |sort |sed -ne ’10,$p’ |xargs
+rm<br>
+
<h3><a name='sect5'>Processor</a></h3>
-If <b>svlogd</b>
-is told to process recent log files, it saves <i>current</i> to @<i>timestamp.u,</i> feeds
-@<i>timestamp.u</i> through ‘‘sh -c "<i>processor</i>"’’ and writes the output to @<i>timestamp.t.</i>
-If the <i>processor</i> finishes successfully, @<i>timestamp.t</i> is renamed to @<i>timestamp.s,</i>
-and @<i>timestamp.u</i> is deleted; otherwise @<i>timestamp.t</i> is deleted and the <i>processor</i>
-is started again. <b>svlogd</b> also saves any output that the <i>processor</i> writes
-to file descriptor 5, and makes that output available on file descriptor
-4 when running <i>processor</i> on the next log file rotation. <p>
-A <i>processor</i> is run
-in the background. If <b>svlogd</b> sees a previously started <i>processor</i> still running
-when trying to start a new one for the same <i>log</i>, it blocks until the currently
-running <i>processor</i> has finished successfully. Only the HUP signal works in
-that situation. Note that this may block any program feeding its log data
-to <b>svlogd.</b>
+If <b>svlogd</b> is told to process recent log files, it saves <i>current</i>
+to @<i>timestamp.u,</i> feeds @<i>timestamp.u</i> through ‘‘sh -c "<i>processor</i>"’’ and writes the
+output to @<i>timestamp.t.</i> If the <i>processor</i> finishes successfully, @<i>timestamp.t</i>
+is renamed to @<i>timestamp.s,</i> and @<i>timestamp.u</i> is deleted; otherwise @<i>timestamp.t</i>
+is deleted and the <i>processor</i> is started again. <b>svlogd</b> also saves any output
+that the <i>processor</i> writes to file descriptor 5, and makes that output available
+on file descriptor 4 when running <i>processor</i> on the next log file rotation.
+<p>
+A <i>processor</i> is run in the background. If <b>svlogd</b> sees a previously started
+<i>processor</i> still running when trying to start a new one for the same <i>log</i>,
+it blocks until the currently running <i>processor</i> has finished successfully.
+Only the HUP signal works in that situation. Note that this may block any
+program feeding its log data to <b>svlogd.</b>
<p>
<h3><a name='sect6'>Config</a></h3>
-On startup, and after receiving a HUP signal, <b>svlogd</b> checks
-for each log directory <i>log</i> if the configuration file <i>log/config</i> exists,
-and if so, reads the file line by line and adjusts configuration for <i>log</i>
-as follows: <p>
-If the line is empty, or starts with a ‘‘#’’, it is ignored. A line
-of the form
+On startup, and after receiving
+a HUP signal, <b>svlogd</b> checks for each log directory <i>log</i> if the configuration
+file <i>log/config</i> exists, and if so, reads the file line by line and adjusts
+configuration for <i>log</i> as follows: <p>
+If the line is empty, or starts with
+a ‘‘#’’, it is ignored. A line of the form
<dl>
<dt>s<i>size</i> </dt>
-<dd>sets the maximum file size of <i>current</i> when <b>svlogd</b> should
-rotate the current log file to <i>size</i> bytes. Default is 1000000. If <i>size</i> is
-zero, <b>svlogd</b> doesn’t rotate log files. You should set <i>size</i> to at least (2
-* <i>len</i>). </dd>
+<dd>sets the maximum file size
+of <i>current</i> when <b>svlogd</b> should rotate the current log file to <i>size</i> bytes.
+Default is 1000000. If <i>size</i> is zero, <b>svlogd</b> doesn’t rotate log files. You
+should set <i>size</i> to at least (2 * <i>len</i>). </dd>
<dt>n<i>num</i> </dt>
-<dd>sets the number of old log files <b>svlogd</b> should maintain to
-<i>num</i>. If <b>svlogd</b> sees more that <i>num</i> old log files in <i>log</i> after log file rotation,
-it deletes the oldest one. Default is 10. If <i>num</i> is zero, <b>svlogd</b> doesn’t remove
-old log files. </dd>
+<dd>sets the number of old log files
+<b>svlogd</b> should maintain to <i>num</i>. If <b>svlogd</b> sees more that <i>num</i> old log files
+in <i>log</i> after log file rotation, it deletes the oldest one. Default is 10.
+If <i>num</i> is zero, <b>svlogd</b> doesn’t remove old log files. </dd>
<dt>N<i>min</i> </dt>
-<dd>sets the minimum number of old log files <b>svlogd</b> should
-maintain to <i>min</i>. <i>min</i> must be less than <i>num</i>. If <i>min</i> is set, and <b>svlogd</b> cannot
-write to <i>current</i> because the filesystem is full, and it sees more than
-<i>min</i> old log files, it deletes the oldest one. </dd>
+<dd>sets the minimum
+number of old log files <b>svlogd</b> should maintain to <i>min</i>. <i>min</i> must be less
+than <i>num</i>. If <i>min</i> is set, and <b>svlogd</b> cannot write to <i>current</i> because the
+filesystem is full, and it sees more than <i>min</i> old log files, it deletes
+the oldest one. </dd>
<dt>t<i>timeout</i> </dt>
-<dd>sets the maximum
-age of the <i>current</i> log file when <b>svlogd</b> should rotate the current log file
-to <i>timeout</i> seconds. If <i>current</i> is <i>timeout</i> seconds old, and is not empty,
-<b>svlogd</b> forces log file rotation. </dd>
+<dd>sets the maximum age of the <i>current</i> log file when
+<b>svlogd</b> should rotate the current log file to <i>timeout</i> seconds. If <i>current</i>
+is <i>timeout</i> seconds old, and is not empty, <b>svlogd</b> forces log file rotation.
+</dd>
<dt>!<i>processor</i> </dt>
-<dd>tells <b>svlogd</b> to feed each recent
-log file through <i>processor</i> (see above) on log file rotation. By default
-log files are not processed. </dd>
+<dd>tells <b>svlogd</b> to feed each recent log file through <i>processor</i>
+(see above) on log file rotation. By default log files are not processed.
+</dd>
<dt>u<i>a.b.c.d[:port]</i> </dt>
-<dd>tells <b>svlogd</b> to transmit the first
-<i>len</i> characters of selected log messages to the IP address <i>a.b.c.d</i>, port number
-<i>port</i>. If <i>port</i> isn’t set, the default port for syslog is used (514). <i>len</i> can
-be set through the -l option, see below. If <b>svlogd</b> has trouble sending udp
-packets, it writes error messages to the log directory. Attention: logging
-through udp is unreliable, and should be used in private networks only.
-</dd>
+<dd>tells <b>svlogd</b> to transmit the first <i>len</i> characters of selected
+log messages to the IP address <i>a.b.c.d</i>, port number <i>port</i>. If <i>port</i> isn’t set,
+the default port for syslog is used (514). <i>len</i> can be set through the -l
+option, see below. If <b>svlogd</b> has trouble sending udp packets, it writes
+error messages to the log directory. Attention: logging through udp is unreliable,
+and should be used in private networks only. </dd>
<dt>U<i>a.b.c.d[:port]</i> </dt>
-<dd>is the same as the <i>u</i> line above, but the log messages are
-no longer written to the log directory, but transmitted through udp only.
-Error messages from <b>svlogd</b> concerning sending udp packages still go to
-the log directory. </dd>
+<dd>is the same as
+the <i>u</i> line above, but the log messages are no longer written to the log
+directory, but transmitted through udp only. Error messages from <b>svlogd</b>
+concerning sending udp packages still go to the log directory. </dd>
<dt>p<i>prefix</i> </dt>
-<dd>tells <b>svlogd</b> to prefix each line to be written
-to the log directory, to standard error, or through UDP, with <i>prefix</i>. </dd>
+<dd>tells
+<b>svlogd</b> to prefix each line to be written to the log directory, to standard
+error, or through UDP, with <i>prefix</i>. </dd>
</dl>
<p>
-If
-a line starts with a <i>-</i>, <i>+</i>, <i>e</i>, or <i>E</i>, <b>svlogd</b> matches the first <i>len</i> characters
-of each log message against <i>pattern</i> and acts accordingly:
+If a line starts with a <i>-</i>, <i>+</i>, <i>e</i>, or <i>E</i>,
+<b>svlogd</b> matches the first <i>len</i> characters of each log message against <i>pattern</i>
+and acts accordingly:
<dl>
<dt>-<i>pattern</i> </dt>
-<dd>the log
-message is deselected. </dd>
+<dd>the log message is deselected. </dd>
<dt>+<i>pattern</i> </dt>
-<dd>the log message is selected. </dd>
+<dd>the
+log message is selected. </dd>
<dt>e<i>pattern</i> </dt>
-<dd>the
-log message is selected to be printed to standard error. </dd>
+<dd>the log message is selected to be printed
+to standard error. </dd>
<dt>E<i>pattern</i> </dt>
-<dd>the log
-message is deselected to be printed to standard error. </dd>
+<dd>the log message is deselected to be printed
+to standard error. </dd>
</dl>
<p>
-Initially each line
-is selected to be written to <i>log/current</i>. Deselected log messages are discarded
-from <i>log</i>. Initially each line is deselected to be written to standard err.
-Log messages selected for standard error are written to standard error.
-
+Initially each line is selected to be written to <i>log/current</i>.
+Deselected log messages are discarded from <i>log</i>. Initially each line is deselected
+to be written to standard err. Log messages selected for standard error
+are written to standard error.
<h2><a name='sect7'>Pattern Matching</a></h2>
-<b>svlogd</b> matches a log message against the string <i>pattern</i>
-as follows: <p>
-<i>pattern</i> is applied to the log message one character by one,
-starting with the first. A character not a star (‘‘*’’) and not a plus (‘‘+’’) matches
-itself. A plus matches the next character in <i>pattern</i> in the log message
-one or more times. A star before the end of <i>pattern</i> matches any string in
-the log message that does not include the next character in <i>pattern</i>. A star
-at the end of <i>pattern</i> matches any string. <p>
-Timestamps optionally added by
-<b>svlogd</b> are not considered part of the log message. <p>
-An <b>svlogd</b> pattern is
-not a regular expression. For example consider a log message like this <p>
-
-2005-12-18_09:13:50.97618 tcpsvd: info: pid 1977 from 10.4.1.14<br>
+<b>svlogd</b> matches a log message
+against the string <i>pattern</i> as follows: <p>
+<i>pattern</i> is applied to the log message
+one character by one, starting with the first. A character not a star (‘‘*’’)
+and not a plus (‘‘+’’) matches itself. A plus matches the next character in
+<i>pattern</i> in the log message one or more times. A star before the end of <i>pattern</i>
+matches any string in the log message that does not include the next character
+in <i>pattern</i>. A star at the end of <i>pattern</i> matches any string. <p>
+Timestamps optionally
+added by <b>svlogd</b> are not considered part of the log message. <p>
+An <b>svlogd</b> pattern
+is not a regular expression. For example consider a log message like this
+<p>
+ 2005-12-18_09:13:50.97618 tcpsvd: info: pid 1977 from 10.4.1.14<br>
<p>
The following pattern doesn’t match <p>
-*pid*<br>
@@ -209,33 +212,35 @@ of a log message only. Default is 1000. </dd>
<dt><b>-b <i>buflen</b> </i></dt>
<dd>buffer size. Set the size
of the buffer <b>svlogd</b> uses when reading from standard input and writing
-to <i>logs</i> to <i>buflen</i>. Default is 1024. <i>buflen</i> must be greater than <i>len</i>. </dd>
+to <i>logs</i> to <i>buflen</i>. Default is 1024. <i>buflen</i> must be greater than <i>len</i>. For <b>svlogd</b>
+instances that process a lot of data in short time, the buffer size should
+be increased to improve performance. </dd>
<dt><b>-v</b> </dt>
-<dd>verbose.
-Print verbose messages to standard error. </dd>
+<dd>verbose. Print verbose messages to
+standard error. </dd>
</dl>
<h2><a name='sect9'>Signals</a></h2>
-If <b>svlogd</b> is sent a HUP
-signal, it closes and reopens all <i>logs</i>, and updates their configuration
-according to <i>log/config</i>. If <b>svlogd</b> has trouble opening a log directory,
-it prints a warning, and discards this log directory. If <b>svlogd</b> is unable
-to open all log directories given at the command line, it exits with an
-error. <p>
-If <b>svlogd</b> is sent a TERM signal, or if it sees end-of-file on standard
-input, it stops reading standard input, processes the data in the buffer,
-waits for all <i>processor</i> subprocesses to finish if any, and exits 0 as soon
-as possible. <p>
-If <b>svlogd</b> is sent an ALRM signal, it forces log file rotation
-for all <i>logs</i> with a non empty <i>current</i> log file.
+If <b>svlogd</b> is sent a HUP signal, it closes and reopens
+all <i>logs</i>, and updates their configuration according to <i>log/config</i>. If <b>svlogd</b>
+has trouble opening a log directory, it prints a warning, and discards
+this log directory. If <b>svlogd</b> is unable to open all log directories given
+at the command line, it exits with an error. <p>
+If <b>svlogd</b> is sent a TERM signal,
+or if it sees end-of-file on standard input, it stops reading standard input,
+processes the data in the buffer, waits for all <i>processor</i> subprocesses
+to finish if any, and exits 0 as soon as possible. <p>
+If <b>svlogd</b> is sent an
+ALRM signal, it forces log file rotation for all <i>logs</i> with a non empty
+<i>current</i> log file.
<h2><a name='sect10'>See Also</a></h2>
-<i>sv(8)</i>, <i>runsv(8)</i>,
-<i>chpst(8)</i>, <i>runit(8)</i>, <i>runit-init(8)</i>, <i>runsvdir(8)</i>, <i>runsvchdir(8)</i> <p>
-<i>http://smarden.org/runit/</i>
-
+<i>sv(8)</i>, <i>runsv(8)</i>, <i>chpst(8)</i>, <i>runit(8)</i>, <i>runit-init(8)</i>,
+<i>runsvdir(8)</i>, <i>runsvchdir(8)</i> <p>
+<i>http://smarden.org/runit/</i>
<h2><a name='sect11'>Author</a></h2>
-Gerrit Pape <pape@smarden.org> <p>
+Gerrit Pape <pape@smarden.org>
+<p>
<hr><p>
<a name='toc'><b>Table of Contents</b></a><p>