summaryrefslogtreecommitdiffstats
path: root/syslog.conf.5
blob: 7f40c1cbd72847017efb349f68873e94ccf8cdd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
SYSLOG.CONF(5)                     Linux System Administration                     SYSLOG.CONF(5)

NAME
       syslog.conf - syslogd(8) configuration file

DESCRIPTION
       The  syslog.conf  file is the main configuration file for the syslogd(8) which logs system
       messages on *nix systems.  This file specifies rules for logging.   For  special  features
       see the sysklogd(8) manpage.

       Every rule consists of two fields, a selector field and an action field.  These two fields
       are separated by one or more spaces or tabs.  The selector field specifies  a  pattern  of
       facilities and priorities belonging to the specified action.

       Lines starting with a hash mark (``#'') and empty lines are ignored.

       This release of syslogd is able to understand an extended syntax.  One rule can be divided
       into several lines if the leading line is terminated with an backslash (``\'').

SELECTORS
       The selector field itself again consists of two parts, a facility and  a  priority,  sepa-
       rated  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 below correspond to the similar LOG_-val-
       ues in /usr/include/syslog.h.

       The facility is one of the following keywords: auth, authpriv, cron,  daemon,  kern,  lpr,
       mail,  mark,  news, security (same as auth), syslog, user, uucp and 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 redi-
       rect these messages here.  The facility 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, notice,
       warning, warn (same as warning), err, error (same as err), crit, alert, emerg, panic (same
       as  emerg).  The keywords error, warn and panic are deprecated and should not be used any-
       more.  The priority defines the severity of the message

       The behavior of the original BSD syslogd is that all messages of  the  specified  priority
       and  higher  are  logged according to the given action.  This syslogd(8) behaves the same,
       but has some extensions.

       In addition to the above mentioned names the syslogd(8) understands the  following  exten-
       sions: 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.

       You  can specify multiple facilities with the same priority pattern in one statement using
       the comma (``,'') operator.  You may specify as much facilities  as  you  want.   Remember
       that  only  the  facility  part  from  such a statement is taken, a priority part would be
       skipped.

       Multiple selectors may be specified for a single action using the semicolon (``;'')  sepa-
       rator.  Remember that each selector in the selector field is capable to overwrite the pre-
       ceding ones.  Using this behavior you can exclude some priorities from the pattern.

       This syslogd(8) has a syntax extension to the original BSD source, that makes its use more
       intuitively.  You may precede every priority with an equation sign (``='') to specify only
       this single priority and not any of the above.  You may also (both is valid, too)  precede
       the  priority with an exclamation mark (``!'') to ignore all that priorities, either exact
       this one or this and any higher priority.  If you use both extensions than the exclamation
       mark must occur before the equation sign, just use it intuitively.

ACTIONS
       The  action  field  of a rule describes the abstract term ``logfile''.  A ``logfile'' need
       not to be a real file, btw.  The syslogd(8) provides the following actions.

   Regular File
       Typically messages are logged to real files.  The file has to be specified with full path-
       name, beginning with a slash ``/''.

       You  may  prefix each entry with the minus ``-'' sign to omit syncing the file after every
       logging.  Note that you might lose information if the system crashes right behind a  write
       attempt.   Nevertheless  this  might give you back some performance, especially if you run
       programs that use logging in a very verbose manner.

   Named Pipes
       This version of syslogd(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 syslogd(8) is started.

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

   Remote Machine
       This  syslogd(8)  provides  full remote logging, i.e. is able to send messages to a remote
       host running syslogd(8) and to receive messages from remote hosts.  The remote host  won't
       forward  the message again, it will just log them locally.  To forward messages to another
       host, prepend the hostname with the at sign (``@'').

       Using this feature you're able to control all syslog messages on one host,  if  all  other
       machines will log remotely to that.  This tears down administration needs.

   List of Users
       Usually  critical messages are also directed to ``root'' on that machine.  You can specify
       a list of users that shall get the message by simply writing the login.  You  may  specify
       more  than one user by separating them with commas (``,'').  If they're logged in they get
       the message.  Don't think a mail would be sent, that might be too late.

   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 asterisk
       (``*'').

EXAMPLES
       Here are some example, partially taken from a real existing site and configuration.  Hope-
       fully they rub out all questions to the configuration, if not, drop me (Joey) a line.

              # Store critical stuff in critical
              #
              *.=crit;kern.none            /var/adm/critical

       This  will store all messages with the priority crit in the file /var/adm/critical, except
       for any kernel message.

              # Kernel messages are first, stored in the kernel
              # file, critical messages and higher ones also go
              # to another host and to the console
              #
              kern.*                       /var/adm/kernel
              kern.crit                    @finlandia
              kern.crit                    /dev/console
              kern.info;kern.!err          /var/adm/kernel-info

       The first rule direct any message that has the kernel facility to the  file  /var/adm/ker-
       nel.

       The  second  statement  directs all kernel messages of the priority crit and higher to the
       remote host finlandia.  This is useful, because if the host crashes and the disks get  ir-
       reparable  errors  you might not be able to read the stored messages.  If they're on a re-
       mote host, too, you still can try to find out the reason for the crash.

       The third rule directs these messages to the actual console, so the person  who  works  on
       the machine will get them, too.

       The  fourth  line  tells the syslogd to save all kernel messages that come with priorities
       from info up to warning in the file /var/adm/kernel-info.  Everything from err and  higher
       is excluded.

              # The tcp wrapper loggs with mail.info, we display
              # all the connections on tty12
              #
              mail.=info                   /dev/tty12

       This  directs  all  messages  that  uses  mail.info  (in  source  LOG_MAIL  | LOG_INFO) to
       /dev/tty12, the 12th console.  For example the tcpwrapper tcpd(8) uses this  as  it's  de-
       fault.

              # Store all mail concerning stuff in a file
              #
              mail.*;mail.!=info           /var/adm/mail

       This  pattern  matches  all messages that come with the mail facility, except for the info
       priority.  These will be stored in the file /var/adm/mail.

              # Log all mail.info and news.info messages to info
              #
              mail,news.=info              /var/adm/info

       This will extract all messages that come either with mail.info or with news.info and store
       them in the file /var/adm/info.

              # Log info and notice messages to messages file
              #
              *.=info;*.=notice;\
                   mail.none  /var/log/messages

       This lets the syslogd log all messages that come with either the info or the notice facil-
       ity into the file /var/log/messages, except for all messages that use the mail facility.

              # Log info messages to messages file
              #
              *.=info;\
                   mail,news.none       /var/log/messages

       This statement causes the syslogd to log all messages that come with the info priority  to
       the  file  /var/log/messages.  But any message coming either with the mail or the news fa-
       cility will not be stored.

              # Emergency messages will be displayed using wall
              #
              *.=emerg                     *

       This rule tells the syslogd to write all emergency messages to  all  currently  logged  in
       users.  This is the wall action.

              # Messages of the priority alert will be directed
              # to the operator
              #
              *.alert                      root,joey

       This  rule directs all messages with a priority of alert or higher to the terminals of the
       operator, i.e. of the users ``root'' and ``joey'' if they're logged in.

              *.*                          @finlandia

       This rule would redirect all messages to a remote host called finlandia.  This  is  useful
       especially  in  a cluster of machines where all syslog messages will be stored on only one
       machine.

CONFIGURATION FILE SYNTAX DIFFERENCES
       Syslogd uses a slightly different syntax for its configuration file than the original  BSD
       sources.   Originally  all messages of a specific priority and above were forwarded to the
       log file.  The modifiers ``='', ``!''  and ``-'' were added to make the syslogd more flex-
       ible and to use it in a more intuitive manner.

       The  original BSD syslogd doesn't understand spaces as separators between the selector and
       the action field.

FILES
       /etc/syslog.conf
              Configuration file for syslogd

BUGS
       The  effects  of  multiple  selectors  are   sometimes   not   intuitive.    For   example
       ``mail.crit,*.err''  will  select  ``mail''  facility  messages at the level of ``err'' or
       higher, not at the level of ``crit'' or higher.

SEE ALSO
       sysklogd(8), klogd(8), logger(1), syslog(2), syslog(3)

AUTHORS
       The syslogd is taken from BSD sources, Greg Wettstein  (greg@wind.enjellic.com)  performed
       the  port  to  Linux, Martin Schulze (joey@linux.de) made some bugfixes and added some new
       features.

Version 1.3                               1 January 1998                           SYSLOG.CONF(5)