summary refs log tree commit diff
path: root/doc/svlogd.8.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/svlogd.8.html')
-rw-r--r--doc/svlogd.8.html194
1 files changed, 105 insertions, 89 deletions
diff --git a/doc/svlogd.8.html b/doc/svlogd.8.html
index 427147d..0f85815 100644
--- a/doc/svlogd.8.html
+++ b/doc/svlogd.8.html
@@ -41,52 +41,65 @@ can happen on start-up or after receiving a HUP signal.
 <h3><a name='sect4'>Log File Rotation</a></h3>
 <b>svlogd</b>
 appends selected log messages to the <i>current</i> log file. If <i>current</i> has <i>size</i>
-bytes or more (or there is a new-line within the last <i>len</i> of <i>size</i> bytes)
-<i>current</i> is rotated: <p>
-<b>svlogd</b> closes <i>current</i>, changes permission 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 <i>dir</i>, it removes the oldest
-one. 
+bytes or more (or there is a new-line within the last <i>len</i> of <i>size</i> bytes),
+or is older than a specified amount of <i>time</i>, <i>current</i> is rotated: <p>
+<b>svlogd</b>
+closes <i>current</i>, changes permission 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 <i>dir</i>, it removes the oldest one. 
 <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 &lsquo;&lsquo;sh -c "<i>processor</i>"&rsquo;&rsquo; and writes the
-output to @<i>timestamp.t.</i> If the <i>processor</i> finishes successfully, @<i>timestamp.u</i>
-is deleted and @<i>timestamp.t</i> is renamed to @<i>timestamp.s,</i> 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 &lsquo;&lsquo;sh -c "<i>processor</i>"&rsquo;&rsquo; and writes the output to @<i>timestamp.t.</i>
+If the <i>processor</i> finishes successfully, @<i>timestamp.u</i> is deleted and @<i>timestamp.t</i>
+is renamed to @<i>timestamp.s,</i> 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 <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, less than two characters long,
-or starts with a &lsquo;&lsquo;#&rsquo;&rsquo;, it is ignored. A line of the form 
+On startup, and after receiving a HUP signal, <b>svlogd</b> checks
+for each <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, less than two characters long, or starts with a &lsquo;&lsquo;#&rsquo;&rsquo;, 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&rsquo;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&rsquo;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 maximum 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. </dd>
+<dd>sets the maximum 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.
+</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>
+
+<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>
 
 <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
@@ -113,89 +126,92 @@ each log message against <i>pattern</i> and acts accordingly:
 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>log
-messages matching <i>pattern</i> are 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>log messages
-not matching <i>pattern</i> are 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. Deselected log messages are discarded from <i>log</i>. 
+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 (&lsquo;&lsquo;*&rsquo;&rsquo;) and not a plus (&lsquo;&lsquo;+&rsquo;&rsquo;) 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. 
+<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 (&lsquo;&lsquo;*&rsquo;&rsquo;) and not a plus (&lsquo;&lsquo;+&rsquo;&rsquo;) 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. 
 <h2><a name='sect8'>Options</a></h2>
 
 <dl>
 
 <dt><b>-t</b> </dt>
-<dd>timestamp. Prefix each selected line with
-a precise timestamp (see <i><b>tai64n</b>(8)</i>) when writing to <i>log</i> or to standard
-error. </dd>
+<dd>timestamp. Prefix
+each selected line with a precise timestamp (see <i><b>tai64n</b>(8)</i>) when writing
+to <i>log</i> or to standard error. </dd>
 
 <dt><b>-tt</b> </dt>
-<dd>timestamp. Prefix each selected line with a human readable, sortable
-UTC timestamp of the form YYYY-MM-DD_HH:MM:SS.xxxxx when writing to <i>log</i> or
-to standard error. </dd>
+<dd>timestamp. Prefix each selected line with
+a human readable, sortable UTC timestamp of the form YYYY-MM-DD_HH:MM:SS.xxxxx
+when writing to <i>log</i> or to standard error. </dd>
 
 <dt><b>-r <i>c</b> </i></dt>
-<dd>replace. <i>c</i> must be a single character. Replace non-printable
-characters in log messages with <i>c</i>. Characters are replaced before pattern
-matching is applied. </dd>
+<dd>replace. <i>c</i> must be a single
+character. Replace non-printable characters in log messages with <i>c</i>. Characters
+are replaced before pattern matching is applied. </dd>
 
 <dt><b>-R <i>xyz</b> </i></dt>
-<dd>replace charset. Additionally to non-printable
-characters, replace all characters found in <i>xyz</i> with <i>c</i> (default &lsquo;&lsquo;_&rsquo;&rsquo;). </dd>
+<dd>replace charset. Additionally
+to non-printable characters, replace all characters found in <i>xyz</i> with <i>c</i>
+(default &lsquo;&lsquo;_&rsquo;&rsquo;). </dd>
 
-<dt><b>-l <i>len</b>
-</i></dt>
-<dd>line length. Pattern matching applies to the first <i>len</i> characters of a log
-message only. Default is 1000. </dd>
+<dt><b>-l <i>len</b> </i></dt>
+<dd>line length. Pattern matching applies to the first <i>len</i>
+characters 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>
+<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>
 
 <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>runsv(8)</i>, <i>runsvctrl(8)</i>, <i>runsvstat(8)</i>, <i>chpst(8)</i>,
-<i>runit(8)</i>, <i>runit-init(8)</i>, <i>runsvdir(8)</i>, <i>runsvchdir(8)</i>, <i>utmpset(8)</i>, <i>multilog(8)</i>
-<p>
+<i>runsv(8)</i>, <i>runsvctrl(8)</i>,
+<i>runsvstat(8)</i>, <i>chpst(8)</i>, <i>runit(8)</i>, <i>runit-init(8)</i>, <i>runsvdir(8)</i>, <i>runsvchdir(8)</i>,
+<i>utmpset(8)</i>, <i>multilog(8)</i> <p>
 <i>http://smarden.org/runit/</i> 
 <h2><a name='sect11'>Author</a></h2>
-Gerrit Pape &lt;pape@smarden.org&gt; <p>
+Gerrit Pape &lt;pape@smarden.org&gt;
+<p>
 
 <hr><p>
 <a name='toc'><b>Table of Contents</b></a><p>