diff options
author | Gerrit Pape <pape@smarden.org> | 2005-12-18 11:19:03 +0000 |
---|---|---|
committer | Gerrit Pape <pape@smarden.org> | 2005-12-18 11:19:03 +0000 |
commit | 1df2cdff198a669c91ebbddc0944c5e8426386e3 (patch) | |
tree | 6531fc44db8602f6b1908c2f5cefd6bebef9cce9 /doc/svlogd.8.html | |
parent | c2e4f73a63165a5dc8cd6c7e30bf9f3680d0cd28 (diff) | |
download | runit-1df2cdff198a669c91ebbddc0944c5e8426386e3.tar.gz runit-1df2cdff198a669c91ebbddc0944c5e8426386e3.tar.xz runit-1df2cdff198a669c91ebbddc0944c5e8426386e3.zip |
html.
Diffstat (limited to 'doc/svlogd.8.html')
-rw-r--r-- | doc/svlogd.8.html | 275 |
1 files changed, 144 insertions, 131 deletions
diff --git a/doc/svlogd.8.html b/doc/svlogd.8.html index 900a6fc..d85ed79 100644 --- a/doc/svlogd.8.html +++ b/doc/svlogd.8.html @@ -29,187 +29,200 @@ sent a TERM signal, see below. A log directory <i>log</i> contains some number of old log files, and the current log file <i>current</i>. Old log files have a file name starting with <i>@</i> followed by a precise timestamp -(see <i><b>tai64n</b>(8)</i>), indicating when <i>current</i> was rotated and renamed to this -file. <p> -A log directory additionally contains the lock file <i>lock</i>, maybe <i>state</i> -and <i>newstate</i>, and optionally the file <i>config</i>. <b>svlogd</b> creates necessary files -if they don’t exist. <p> -If <b>svlogd</b> has trouble opening a log directory, it prints -a warning, and ignores this log directory. If <b>svlogd</b> is unable to open all -log directories given at the command line, it exits with an error. This -can happen on start-up or after receiving a HUP signal. +(see the daemontools’ <b>tai64n</b> program), indicating when <i>current</i> was rotated +and renamed to this file. <p> +A log directory additionally contains the lock +file <i>lock</i>, maybe <i>state</i> and <i>newstate</i>, and optionally the file <i>config</i>. <b>svlogd</b> +creates necessary files if they don’t exist. <p> +If <b>svlogd</b> has trouble opening +a log directory, it prints a warning, and ignores this log directory. If +<b>svlogd</b> is unable to open all log directories given at the command line, +it exits with an error. This 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), -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 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. +<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), 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 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. <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.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 ‘‘sh -c "<i>processor</i>"’’ 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 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, less than two characters long, 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, less than two characters long, 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> - -<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 +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 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> </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> +<dt>E<i>pattern</i> </dt> +<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. +<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> + <p> +because the first star matches up to the first p in tcpsvd, and then the +match fails because i is not s. To match this log message, you can use a +pattern like this instead <p> + -*: *: pid *<br> + <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 the daemontools’ <b>tai64n</b> program) 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 ‘‘_’’). </dd> +<dd>replace charset. Additionally to non-printable +characters, replace all characters found in <i>xyz</i> with <i>c</i> (default ‘‘_’’). </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>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> |