Sync syslogd with FreBSD:
[dragonfly.git] / usr.sbin / syslogd / syslog.conf.5
1 .\" Copyright (c) 1990, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 4. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)syslog.conf.5       8.1 (Berkeley) 6/9/93
29 .\" $FreeBSD: src/usr.sbin/syslogd/syslog.conf.5,v 1.46 2008/12/23 17:39:24 trhodes Exp $
30 .\" $DragonFly: src/usr.sbin/syslogd/syslog.conf.5,v 1.10 2008/04/20 21:14:39 swildner Exp $
31 .\"
32 .Dd December 23, 2008
33 .Dt SYSLOG.CONF 5
34 .Os
35 .Sh NAME
36 .Nm syslog.conf
37 .Nd
38 .Xr syslogd 8
39 configuration file
40 .Sh DESCRIPTION
41 The
42 .Nm
43 file is the configuration file for the
44 .Xr syslogd 8
45 program.
46 It consists of
47 blocks of lines separated by
48 .Em program
49 and
50 .Em hostname
51 specifications (separations appear alone on their lines),
52 with each line containing two fields: the
53 .Em selector
54 field which specifies the types of messages and priorities to which the
55 line applies, and an
56 .Em action
57 field which specifies the action to be taken if a message
58 .Xr syslogd 8
59 receives matches the selection criteria.
60 The
61 .Em selector
62 field is separated from the
63 .Em action
64 field by one or more tab characters or spaces.
65 .Pp
66 Note that if you use spaces as separators, your
67 .Nm
68 might be incompatible with other Unices or Unix-like systems.
69 This functionality was added for ease of configuration
70 (e.g.\& it is possible to cut-and-paste into
71 .Nm ) ,
72 and to avoid possible mistakes.
73 This change however preserves
74 backwards compatibility with the old style of
75 .Nm
76 (i.e., tab characters only).
77 .Pp
78 The
79 .Em selectors
80 are encoded as a
81 .Em facility ,
82 a period
83 .Pq Dq \&. ,
84 an optional set of comparison flags
85 .Pq Oo \&! Oc Op <=> ,
86 and a
87 .Em level ,
88 with no intervening white-space.
89 Both the
90 .Em facility
91 and the
92 .Em level
93 are case insensitive.
94 .Pp
95 The
96 .Em facility
97 describes the part of the system generating the message, and is one of
98 the following keywords:
99 .Cm auth , authpriv , console , cron , daemon , ftp , kern , lpr ,
100 .Cm mail , mark , news , ntp , security , syslog , user , uucp ,
101 and
102 .Cm local0
103 through
104 .Cm local7 .
105 These keywords (with the exception of mark) correspond to
106 similar
107 .Dq Dv LOG_
108 values specified to the
109 .Xr openlog 3
110 and
111 .Xr syslog 3
112 library routines.
113 .Pp
114 The
115 .Em comparison flags
116 may be used to specify exactly what is logged.
117 The default comparison is
118 .Dq =>
119 (or, if you prefer,
120 .Dq >= ) ,
121 which means that messages from the specified
122 .Em facility
123 list, and of a priority
124 level equal to or greater than
125 .Em level
126 will be logged.
127 Comparison flags beginning with
128 .Dq Li \&!
129 will have their logical sense inverted.
130 Thus
131 .Dq !=info
132 means all levels except info and
133 .Dq !notice
134 has the same meaning as
135 .Dq <notice .
136 .Pp
137 The
138 .Em level
139 describes the severity of the message, and is a keyword from the
140 following ordered list (higher to lower):
141 .Cm emerg , crit , alert , err , warning , notice , info
142 and
143 .Cm debug .
144 These keywords correspond to
145 similar
146 .Dq Dv LOG_
147 values specified to the
148 .Xr syslog 3
149 library routine.
150 .Pp
151 Each block of lines is separated from the previous block by a
152 .Em program
153 or
154 .Em hostname
155 specification.
156 A block will only log messages corresponding to the most recent
157 .Em program
158 and
159 .Em hostname
160 specifications given.
161 Thus, with a block which selects
162 .Ql ppp
163 as the
164 .Em program ,
165 directly followed by a block that selects messages from the
166 .Em hostname
167 .Ql dialhost ,
168 the second block will only log messages
169 from the
170 .Xr ppp 8
171 program on dialhost.
172 .Pp
173 A
174 .Em program
175 specification is a line beginning with
176 .Ql #!prog
177 or
178 .Ql !prog
179 (the former is for compatibility with the previous syslogd, if one is sharing
180 .Nm
181 files, for example)
182 and the following blocks will be associated with calls to
183 .Xr syslog 3
184 from that specific program.
185 A
186 .Em program
187 specification for
188 .Ql foo
189 will also match any message logged by the kernel with the prefix
190 .Ql "foo: " .
191 The
192 .Ql #!+prog
193 or
194 .Ql !+prog
195 specification works just like the previous one,
196 and the
197 .Ql #!-prog
198 or
199 .Ql !-prog
200 specification will match any message but the ones from that
201 program.
202 Multiple programs may be listed, separated by commas:
203 .Ql !prog1,prog2
204 matches messages from either program, while
205 .Ql !-prog1,prog2
206 matches all messages but those from
207 .Ql prog1
208 or
209 .Ql prog2 .
210 .Pp
211 A
212 .Em hostname
213 specification of the form
214 .Ql #+hostname
215 or
216 .Ql +hostname
217 means the following blocks will be applied to messages
218 received from the specified hostname.
219 Alternatively, the
220 .Em hostname
221 specification
222 .Ql #-hostname
223 or
224 .Ql -hostname
225 causes the following blocks to be applied to messages
226 from any host but the one specified.
227 If the hostname is given as
228 .Ql @ ,
229 the local hostname will be used.
230 As for program specifications, multiple comma-separated
231 values may be specified for hostname specifications.
232 .Pp
233 A
234 .Em program
235 or
236 .Em hostname
237 specification may be reset by giving the program or hostname as
238 .Ql * .
239 .Pp
240 See
241 .Xr syslog 3
242 for further descriptions of both the
243 .Em facility
244 and
245 .Em level
246 keywords and their significance.
247 It is preferred that selections be made on
248 .Em facility
249 rather than
250 .Em program ,
251 since the latter can easily vary in a networked environment.
252 In some cases,
253 though, an appropriate
254 .Em facility
255 simply does not exist.
256 .Pp
257 If a received message matches the specified
258 .Em facility
259 and is of the specified
260 .Em level
261 .Em (or a higher level) ,
262 and the first word in the message after the date matches the
263 .Em program ,
264 the action specified in the
265 .Em action
266 field will be taken.
267 .Pp
268 Multiple
269 .Em selectors
270 may be specified for a single
271 .Em action
272 by separating them with semicolon
273 .Pq Dq \&;
274 characters.
275 It is important to note, however, that each
276 .Em selector
277 can modify the ones preceding it.
278 .Pp
279 Multiple
280 .Em facilities
281 may be specified for a single
282 .Em level
283 by separating them with comma
284 .Pq Dq \&,
285 characters.
286 .Pp
287 An asterisk
288 .Pq Dq *
289 can be used to specify all
290 .Em facilities ,
291 all
292 .Em levels ,
293 or all
294 .Em programs .
295 .Pp
296 The special
297 .Em facility
298 .Dq mark
299 receives a message at priority
300 .Dq info
301 every 20 minutes
302 (see
303 .Xr syslogd 8 ) .
304 This is not enabled by a
305 .Em facility
306 field containing an asterisk.
307 .Pp
308 The special
309 .Em level
310 .Dq none
311 disables a particular
312 .Em facility .
313 .Pp
314 The
315 .Em action
316 field of each line specifies the action to be taken when the
317 .Em selector
318 field selects a message.
319 There are five forms:
320 .Bl -bullet
321 .It
322 A pathname (beginning with a leading slash).
323 Selected messages are appended to the file.
324 .Pp
325 To ensure that kernel messages are written to disk promptly,
326 .Xr syslogd 8
327 calls
328 .Xr fsync 2
329 after writing messages from the kernel.
330 Other messages are not synced explicitly.
331 You may prefix a pathname with the minus sign,
332 .Dq - ,
333 to forego syncing the specified file after every kernel message.
334 Note that you might lose information if the system crashes
335 immediately following a write attempt.
336 Nevertheless, using the
337 .Dq -
338 option may improve performance,
339 especially if the kernel is logging many messages.
340 .It
341 A hostname (preceded by an at
342 .Pq Dq @
343 sign).
344 Selected messages are forwarded to the
345 .Xr syslogd 8
346 program on the named host.
347 If a port number is added after a colon
348 .Pq Ql :\&
349 then that port will be used as the destination port
350 rather than the usual syslog port.
351 .It
352 A comma separated list of users.
353 Selected messages are written to those users
354 if they are logged in.
355 .It
356 An asterisk.
357 Selected messages are written to all logged-in users.
358 .It
359 A percent sign
360 .Pq Dq \&% ,
361 followed by a pathname (beginning with a leading slash).  Selected messages
362 are written to a circular log file.
363 See
364 .Xr clog 8
365 for a discussion of circular log files.
366 .It
367 A vertical bar
368 .Pq Dq \&| ,
369 followed by a command to pipe the selected
370 messages to.
371 The command is passed to
372 .Xr sh 1
373 for evaluation, so usual shell metacharacters or input/output
374 redirection can occur.
375 (Note however that redirecting
376 .Xr stdio 3
377 buffered output from the invoked command can cause additional delays,
378 or even lost output data in case a logging subprocess exited with a
379 signal.)
380 The command itself runs with
381 .Em stdout
382 and
383 .Em stderr
384 redirected to
385 .Pa /dev/null .
386 Upon receipt of a
387 .Dv SIGHUP ,
388 .Xr syslogd 8
389 will close the pipe to the process.
390 If the process did not exit
391 voluntarily, it will be sent a
392 .Dv SIGTERM
393 signal after a grace period of up to 60 seconds.
394 .Pp
395 The command will only be started once data arrives that should be piped
396 to it.
397 If it exited later, it will be restarted as necessary.
398 So if it
399 is desired that the subprocess should get exactly one line of input only
400 (which can be very resource-consuming if there are a lot of messages
401 flowing quickly), this can be achieved by exiting after just one line of
402 input.
403 If necessary, a script wrapper can be written to this effect.
404 .Pp
405 Unless the command is a full pipeline, it is probably useful to
406 start the command with
407 .Em exec
408 so that the invoking shell process does not wait for the command to
409 complete.
410 Warning: the process is started under the UID invoking
411 .Xr syslogd 8 ,
412 normally the superuser.
413 .El
414 .Pp
415 Blank lines and lines whose first non-blank character is a hash
416 .Pq Dq #
417 character are ignored.
418 If
419 .Ql #
420 is placed in the middle of the line, the
421 .Ql #
422 character and the rest of the line after it is ignored.
423 To prevent special meaning, the
424 .Ql #
425 character may be escaped with
426 .Ql \e ;
427 in this case preceding
428 .Ql \e
429 is removed and
430 .Ql #
431 is treated as an ordinary character.
432 .Sh IMPLEMENTATION NOTES
433 The
434 .Dq kern
435 facility is usually reserved for messages
436 generated by the local kernel.
437 Other messages logged with facility
438 .Dq kern
439 are usually translated to facility
440 .Dq user .
441 This translation can be disabled;
442 see
443 .Xr syslogd 8
444 for details.
445 .Sh FILES
446 .Bl -tag -width /etc/syslog.conf -compact
447 .It Pa /etc/syslog.conf
448 .Xr syslogd 8
449 configuration file
450 .El
451 .Sh EXAMPLES
452 A configuration file might appear as follows:
453 .Bd -literal
454 # Log all kernel messages, authentication messages of
455 # level notice or higher, and anything of level err or
456 # higher to the console.
457 # Don't log private authentication messages!
458 *.err;kern.*;auth.notice;authpriv.none;mail.crit        /dev/console
459
460 # Log anything (except mail) of level info or higher.
461 # Don't log private authentication messages!
462 *.info;mail.none;authpriv.none          /var/log/messages
463
464 # Log daemon messages at debug level only
465 daemon.=debug                                           /var/log/daemon.debug
466
467 # The authpriv file has restricted access.
468 authpriv.*                                              /var/log/secure
469
470 # Log all the mail messages in one place.
471 mail.*                                                  /var/log/maillog
472
473 # Everybody gets emergency messages, plus log them on another
474 # machine.
475 *.emerg                                                 *
476 *.emerg                                                 @arpa.berkeley.edu
477
478 # Root and Eric get alert and higher messages.
479 *.alert                                                 root,eric
480
481 # Save mail and news errors of level err and higher in a
482 # special file.
483 uucp,news.crit                                          /var/log/spoolerr
484
485 # Pipe all authentication messages to a filter.
486 auth.*                                  |exec /usr/local/sbin/authfilter
487
488 # Save ftpd transactions along with mail and news
489 !ftpd
490 *.*                                                     /var/log/spoolerr
491
492 # Log all security messages to a separate file.
493 security.*                                              /var/log/security
494
495 # Log all writes to /dev/console to a separate file.
496 console.*                                               /var/log/console.log
497
498 # Log ipfw messages without syncing after every message.
499 !ipfw
500 *.*                                                     -/var/log/ipfw
501 .Ed
502 .Sh SEE ALSO
503 .Xr syslog 3 ,
504 .Xr syslogd 8
505 .Sh BUGS
506 The effects of multiple
507 .Em selectors
508 are sometimes not intuitive.
509 For example
510 .Dq mail.crit,*.err
511 will select
512 .Dq mail
513 facility messages at the level of
514 .Dq err
515 or higher, not at the level of
516 .Dq crit
517 or higher.
518 .Pp
519 In networked environments, note that not all operating systems
520 implement the same set of facilities.
521 The facilities
522 authpriv, cron, ftp, and ntp that are known to this implementation
523 might be absent on the target system.
524 Even worse, DEC
525 .Ux
526 uses facility number 10 (which is authpriv in this implementation) to
527 log events for their AdvFS file system.