]> git.saurik.com Git - apple/syslog.git/blob - util.tproj/syslog.1
62e9bb11781d1c2c234ecf4f760d8b8e882dfd49
[apple/syslog.git] / util.tproj / syslog.1
1 .\"Copyright (c) 2004-2012 Apple Inc. All rights reserved.
2 .\"
3 .\"@APPLE_LICENSE_HEADER_START@
4 .\"
5 .\"This file contains Original Code and/or Modifications of Original Code
6 .\"as defined in and that are subject to the Apple Public Source License
7 .\"Version 2.0 (the 'License'). You may not use this file except in
8 .\"compliance with the License. Please obtain a copy of the License at
9 .\"http://www.opensource.apple.com/apsl/ and read it before using this
10 .\"file.
11 .\"
12 .\"The Original Code and all software distributed under the License are
13 .\"distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 .\"EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 .\"INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 .\"FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
17 .\"Please see the License for the specific language governing rights and
18 .\"limitations under the License.
19 .\"
20 .\"@APPLE_LICENSE_HEADER_END@
21 .\"
22 .Dd October 18, 2004
23 .Dt SYSLOG 1
24 .Os "Mac OS X"
25 .Sh NAME
26 .Nm syslog
27 .Nd Apple System Log utility
28 .Sh SYNOPSIS
29 .Nm
30 .Fl help
31 .D1 ""
32 .Nm
33 .Fl s
34 .Op Fl r Ar host
35 .Op Fl l Ar level
36 message...
37 .D1 ""
38 .Nm
39 .Fl s
40 .Op Fl r Ar host
41 .Fl k
42 key val
43 .Op key val
44 .Li ...
45 .D1 ""
46 .Nm
47 .Fl C
48 .D1 ""
49 .Nm
50 .Op Fl f Ar file ...
51 .Op Fl d Ar dir ...
52 .Op Fl B
53 .Op Fl w Op Ar n
54 .Op Fl F Ar format
55 .Op Fl T Ar format
56 .Op Fl E Ar format
57 .Ar expression
58 .D1 ""
59 .Nm
60 .Op Fl f Ar file ...
61 .Op Fl d Ar dir ...
62 .Fl x Ar file Ar expression
63 .D1 ""
64 .Nm
65 .Fl c Ar process Op filter
66 .D1 ""
67 .Nm
68 .Fl config Op options
69 .D1 ""
70 .Nm
71 .Fl module
72 .Op name Op action
73 .Sh DESCRIPTION
74 .Nm
75 is a command-line utility for a variety of tasks relating to the Apple System Log (ASL) facility.
76 It provides mechanisms for sending and viewing log messages,
77 copying log messages to ASL format data store files,
78 and for controlling the flow of log messages from client processes.
79 .Pp
80 When invoked with the
81 .Fl help
82 option,
83 .Nm
84 prints a usage message.
85 .Ss SENDING MESSAGES
86 The
87 .Fl s
88 option is used send log messages to the
89 .Xr syslogd 8
90 log message daemon,
91 either locally or to a remote server if the
92 .Fl r Ar host
93 option in used.
94 .Pp
95 There are two main forms of the command.
96 If the
97 .Fl k
98 option is used, then it must be followed by a list of keys and values.
99 A structured message will be sent to the server with the keys and values given as arguments.
100 If a key or a value has embedded white space, it must be enclosed in quotes.
101 .Pp
102 Note that the text of the log message should be supplied as a value following the
103 .Dq Message
104 key.
105 .Pp
106 If the
107 .Fl k
108 option is not specified, then the rest of the command line is treated as the message text.
109 The text may be preceded by
110 .Fl l Ar level
111 to set the log level (priority) of the message.
112 Levels may be an integer value corresponding the the log levels specified in
113 .Xr syslog 3
114 or
115 .Xr asl 3 ,
116 or they may be a string.
117 String values are case insensitive, and should be one of:
118 .Pp
119 .Bl -tag -compact
120 .It Emergency
121 (level 0)
122 .It Alert
123 (level 1)
124 .It Critical
125 (level 2)
126 .It Error
127 (level 3)
128 .It Warning
129 (level 4)
130 .It Notice
131 (level 5)
132 .It Info
133 (level 6)
134 .It Debug
135 (level 7)
136 .El
137 .Pp
138 The string
139 .Dq Panic
140 is an alias for
141 .Dq Emergency .
142 .Pp
143 If the
144 .Fl l
145 option is omitted, the log level defaults to 7 (Debug).
146 .Pp
147 .Nm
148 only requires one or two leading characters for a level specification.
149 A single character suffices in most cases.
150 Use
151 .Dq P
152 or
153 .Dq \&Em
154 for Panic / Emergency, and
155 .Dq \&Er
156 or
157 .Dq X
158 for Error).
159 .Ss READING MESSAGES
160 The
161 .Nm syslogd
162 daemon filters and saves log messages to different output streams.
163 One module saves messages to files specified in the
164 .Xr syslog.conf 5
165 file.
166 Those log files may be examined with any file printing or editing utility,
167 e.g.
168 .Pp
169 .Dl cat /var/log/system.log
170 .Pp
171 Another module saves messages in a data store (/var/log/asl).
172 .Pp
173 If invoked with no arguments,
174 .Nm
175 fetches all messages from the active data store.
176 Messages are then printed to standard output,
177 subject to formatting options and character encoding as described below.
178 Some log messages are read-access controlled,
179 so only messages that are readable by the user running
180 .Nm
181 will be fetched and printed.
182 .Pp
183 If invoked with the
184 .Fl C
185 option,
186 .Nm
187 fetches and prints console messages.
188 The
189 .Fl C
190 option is actually an alias for the expression:
191 .Pp
192 .Dl -k Facility com.apple.console
193 .Pp
194 See the EXPRESSIONS section below for more details.
195 .Pp
196 Individual ASL data store files may be read by providing one or more file names as arguments to the
197 .Fl f
198 option.
199 This may be useful when searching archived files, files on alternate disk volumes,
200 or files created as export files with the
201 .Fl x
202 option.
203 .Pp
204 The
205 .Fl d
206 option may be followed by a list of directory paths.
207 .Nm
208 will read or search all ASL data store files in those directories.
209 Any files that are not readable will be skipped.
210 Specifying
211 .Fl d
212 with the name
213 .Dq archive
214 will open all readable files in the default ASL archive directory /var/log/asl.archive.
215 Specifying
216 .Fl d
217 with the name
218 .Dq store
219 will open all readable files in the ASL store directory /var/log/asl.
220 .Pp
221 Legacy ASL database files that were written by
222 .Nm syslogd
223 on Mac OS X 10.5 (Leopard) may also be read using the
224 .Fl f
225 option.
226 However only one such legacy database may be read or searched at a time.
227 Note that a legacy database may be read and copied into a new ASL data store format file using a combination of
228 .Fl f
229 and
230 .Fl x
231 options.
232 .Pp
233 The
234 .Fl B
235 option causes
236 .Nm
237 to start processing messages beginning at the time of the last system startup.
238 If used in conjunction with
239 .Fl w ,
240 all messages since the last system startup are displayed, or matched against an expression, before
241 .Nm
242 waits for new messages.
243 .Pp
244 The
245 .Fl w
246 option causes
247 .Nm
248 to wait for new messages.
249 By default,
250 .Nm
251 prints the last 10 messages,
252 then waits for new messages to be added to the data store.
253 A number following the
254 .Fl w
255 option specifies the number of messages to print and overrides the default value of 10.
256 For example:
257 .Pp
258 .Dl syslog -w 20
259 .Pp
260 Use the value
261 .Dq all
262 to view all messages in the data store before watching for new messages.
263 The value
264 .Dq boot
265 will display messages since the last system startup before watching for new messages.
266 Specifying
267 .Dq -w boot
268 is equivalent to using
269 .Fl w
270 and
271 .Fl B
272 together.
273 .Pp
274 Using
275 .Nm
276 with the
277 .Fl w
278 option is similar to watching a log file using, e.g.
279 .Pp
280 .Dl tail -f /var/log/system.log
281 .Pp
282 The
283 .Fl w
284 option can only be used when reading the system's ASL data store or when reading a single data store file,
285 and when printing messages to standard output.
286 .Pp
287 If the
288 .Fl x Ar file
289 option is specified, messages are copied to the named file rather than being printed.
290 The file will be created if it does not exist.
291 .Pp
292 When called without the
293 .Fl x
294 option, messages are printed to standard output.
295 Messages are printed in a format similar to that used in the system.log file,
296 except that the message priority level is printed between angle-brackets.
297 .Pp
298 The output format may by changed by specifying the
299 .Fl F Ar format
300 option.
301 Non-printable and control characters are encoded by default.
302 Text encoding may be controlled using the
303 .Fl E
304 option (see below).
305 The value of
306 .Ar format
307 may be one of the following:
308 .Pp
309 .Bl -tag -width "xxxx"
310 .It bsd
311 Format used by the
312 .Nm syslogd
313 daemon for system log files, e.g. /var/log/system.log.
314 .It std
315 Standard (default) format.
316 Similar to
317 .Dq bsd ,
318 but includes the message priority level.
319 .It raw
320 Prints the complete message structure.
321 Each key/value pair is enclosed in square brackets.
322 Embedded closing brackets and white space are escaped.
323 Time stamps are printed as seconds since the epoch by default, but may also be
324 printed in local time or UTC if the
325 .Fl T
326 option is specified (see below).
327 .It xml
328 The list of messages is printed as an XML property list.
329 Each message is represented as a dictionary in a array.
330 Dictionary keys represent message keys.
331 Dictionary values are strings.
332 .El
333 .Pp
334 Each of the format styles above may optionally be followed by a dot character and an integer value, for example:
335 .Pp
336 .Dl syslog -F std.4
337 .Pp
338 This causes sub-second time values to be printed.
339 In the example above, 4 decimal digits would be printed.
340 The sub-second time values come from the value of the TimeNanoSec key in the ASL message.
341 If the TimeNanoSec key is missing, a value of zero is used.
342 .Pp
343 The value of the
344 .Ar format
345 argument may also be a custom print format string.
346 A custom format should in most cases be enclosed in single quotes to prevent the shell from substituting
347 special characters and breaking at white space.
348 .Pp
349 Custom format strings may include variables of the form
350 .Dq $Name ,
351 .Dq $(Name) ,
352 or
353 .Dq $((Name)(format)) .
354 which will be expanded to the value associated with the named key.
355 For example, the command:
356 .Pp
357 .Dl syslog -F '$Time $Host $(Sender)[$(PID)] <$((Level)(str))>: $Message'
358 .Pp
359 produces output similar to the
360 .Dq std
361 format.
362 The simple
363 .Dq $Name
364 form is sufficient in most cases.
365 However, the second form:
366 .Dq $(Name)
367 must be used if the name is not delimited by white space.
368 The third form allows different formats of the value to be printed.
369 For example, a message priority level may appear as an integer value (e.g.
370 .Dq 3 )
371 or as a string (``Error'').
372 The following print formats are known.
373 .Pp
374 .Bl -tag -width "$((Time)([+|-]HH[:MM]))"
375 .It $((Level)(str))
376 Formats a Level value as a string, for example
377 .Dq Error ,
378 .Dq Alert ,
379 .Dq Warning ,
380 and so on.
381 Note that $(Level) or $Level formats the value as an integer 0 through 7.
382 .It $((Time)(sec))
383 Formats a Time value as the number of seconds since the Epoch.
384 .It $((Time)(raw))
385 Alias for $((Time)(sec)).
386 .It $((Time)(local))
387 Formats a Time value as a string of the form
388 .Dq "Mmm dd hh:mm:ss" ,
389 where Mmm is the abbreviation for the month, dd is the date (1 - 31) and hh:mm:ss is the time.
390 The local timezone is used.
391 .It $((Time)(lcl))
392 Alias for $((Time)(local)).
393 .It $((Time)(utc))
394 Formats a Time value as a string of the form
395 .Dq "yyyy-mm-dd hh:mm:ssZ" ,
396 using Coordinated Universal Time, or the
397 .Dq Zulu
398 time zone.
399 .It $((Time)(zulu))
400 Alias for $((Time)(utc)).
401 .It $((Time)(X))
402 Where X may be any letter in the range A - Z or a - z.
403 Formats the Time using the format
404 .Dq "yyyy-mm-dd hh:mm:ssX" ,
405 using the specified nautical timezone.
406 Z is the same as UTC/Zulu time. Timezones A - M (except J) decrease by one hour to the east of the
407 Zulu time zone.
408 Timezones N - Y increase by one hour to the west of Z.
409 M and Y have the same clock time, but differ by one day.
410 J is used to indicate the local timezone.
411 When printing using $((Time)(J)), the output format is
412 .Dq "yyyy-mm-dd hh:mm:ss" ,
413 without a trailing timezone letter.
414 .It $((Time)(JZ))
415 Specifies the local timezone.
416 The timezone offset from UTC follows the date and time.
417 The time is formatted as
418 .Dq "yyyy-mm-dd hh:mm:ss[+|-]HH[:MM]" .
419 Minutes in the timezone offset are only printed if they are non-zero.
420 .It $((Time)(ISO8601))
421 Specifies the local timezone and ISO 8601 extended format.
422 The timezone offset from UTC follows the date and time.
423 The time is formatted as
424 .Dq "yyyy-mm-ddThh:mm:ss[+|-]HH[:MM]" .
425 Minutes in the timezone offset are only printed if they are non-zero.
426 Note that this differs from
427 .Dq JZ
428 format only in that a
429 .Dq T
430 character separates the date and time.
431 .It $((Time)(ISO8601B))
432 Specifies the local timezone and ISO 8601 basic format, in the form:
433 .Dq "yyyymmddThhmmss[+|-]HH[:MM]" .
434 .It $((Time)(ISO8601Z))
435 Specifies UTC/Zulu time and ISO 8601 extended format, in the form:
436 .Dq "yyyy-mm-ddThh:mm:ssZ" .
437 .It $((Time)(ISO8601BZ))
438 Specifies UTC/Zulu time and ISO 8601 basic format, in the form:
439 .Dq "yyyymmddThhmmssZ" .
440 .It $((Time)([+|-]HH[:MM]))
441 Specifies an offset (+ or -) of the indicated number of hours (HH) and optionally minutes (MM) to UTC.
442 The value is formatted as a string of the form
443 .Dq "yyyy-mm-dd hh:mm:ss[+|-]HH[:MM]" .
444 Minutes in the timezone offset are only printed if they are non-zero.
445 .El
446 .Pp
447 Each of the print formats listed above for Time values may optionally be followed by a dot character and an integer value.
448 In that case, sub-second time values will be printed.
449 For example, the following line prints messages with a UTC time format, and includes 6 digits of sub-second time:
450 .Pp
451 .Dl syslog -F '$((Time)(utc.6)) $Host $(Sender)[$(PID)] <$((Level)(str))>: $Message
452 .Pp
453 If a custom format is not being used to specify the format for Time values, then Time values
454 are generally converted to local time, except when the
455 .Fl F Ar raw
456 option is used, in which case times are printed as the number of seconds since the epoch.
457 The
458 .Fl T Ar format
459 option may be used to control the format used for timestamps.
460 The value of
461 .Ar format
462 may be one of the following:
463 .Pp
464 .Bl -tag -width "local or lcl"
465 .It sec or raw
466 Times are printed as the number of seconds since the epoch.
467 .It local or lcl
468 Times are converted to the local time zone, and printed with the format
469 .Dl mmm dd hh:mm:ss
470 where mmm is the month name abbreviated as three characters.
471 .It utc or zulu
472 Times are converted to UTC, and printed with the format
473 .Dl yyyy-mm-dd hh:mm:ssZ
474 .It A-Z
475 Times are converted to the indicated nautical time zone,
476 printed in the same format as UTC.
477 .Dq J
478 is interpreted as the local timezone and printed in the same format,
479 but without a trailing timezone letter.
480 .It JZ
481 is interpreted as the local timezone and printed with the format
482 .Dl yyyy-mm-dd hh:mm:ss[+|-]HH[:MM] .
483 The trailing
484 .Dq [+|-]HH[:MM]
485 string represents the local timezone offset from UTC in hours,
486 or in hours and minutes if minutes are non-zero.
487 .It ISO8601
488 Times are printed with the format specified by ISO 8601:
489 .Dl yyyy-mm-ddThh:mm:ss[+|-]HH[:MM] .
490 This is the same as the
491 .Dq JZ
492 format, except a
493 .Dq T character separates the date and time components.
494 .It [+|-]hh[:mm]
495 The specified offset is used to adjust time.
496 .El
497 .Pp
498 Each of the time formats above may optionally be followed by a dot character and an integer value.
499 In that case, sub-second time values will be printed.
500 For example:
501 .Pp
502 .Dl syslog -T bsd.3
503 .Pp
504 The
505 .Fl u
506 option is a short form for
507 .Fl T Ar utc .
508 .Pp
509 By default, control characters and non-printable characters are encoded in the output stream.
510 In some cases this may make messages less natural in appearance.
511 The encoding is designed to preserve all the information in the log message,
512 and to prevent malicious users from spoofing or obscuring information in log messages.
513 .Pp
514 Text in the
515 .Dq std ,
516 .Dq bsd ,
517 and
518 .Dq raw
519 formats is encoded as it is by the
520 .Nm vis
521 utility with the
522 .Fl c
523 option.
524 Newlines and tabs are also encoded as "\\n" and "\\t" respectively.
525 In
526 .Dq raw
527 format, space characters embedded in log message keys are encoded as "\\s"
528 and embedded brackets are escaped to print as "\\[" and "\\]".
529 .Pp
530 XML format output requires that keys are valid UTF8 strings.
531 Keys which are not valid UTF8 are ignored, and the associated value is not printed.
532 .Pp
533 Values that contain legal UTF8 are printed as strings.
534 Ampersand, less than, greater than, quotation mark, and apostrophe characters are encoded according to XML conventions.
535 Embedded control characters are encoded as
536 .Dq &#xNN;
537 where NN is the character's hexadecimal value.
538 .Pp
539 Values that do not contain legal UTF8 are encoded in base-64 and printed as data objects.
540 .Pp
541 The
542 .Fl E Ar format
543 option may be used to explicitly control the text encoding.
544 The value of
545 .Ar format
546 may be one of the following:
547 .Pp
548 .Bl -tag -width "safe"
549 .It vis
550 The default encoding described above.
551 .It safe
552 Encodes backspace characters as ^H.
553 Carriage returns are mapped to newlines.
554 A tab character is appended after newlines so that message text is indented.
555 .It none
556 No encoding is used.
557 .El
558 .Pp
559 The intent of the
560 .Dq safe
561 encoding is to prevent obvious message spoofing or damage.
562 The appearance of messages printed will depend on terminal settings and UTF-8 string handling.
563 It is possible that messages printed using the
564 .Dq safe
565 or
566 .Dq none
567 options may be garbled or subject to manipulation through the use of control characters and control sequences
568 embedded in user-supplied message text.
569 The default
570 .Dq vis
571 encoding should be used to view messages if there is any suspicion
572 that message text may have been used to manipulate the printed representation.
573 .Pp
574 If no further command line options are specified,
575 .Nm
576 displays all messages, or copies all messages to a data store file.
577 However, an expression may be specified using the
578 .Fl k
579 and
580 .Fl o
581 options.
582 .Ss EXPRESSIONS
583 Expressions specify matching criteria.
584 They may be used to search for messages of interest.
585 .Pp
586 A simple expression
587 has the form:
588 .Pp
589 .Dl -k key [[op] val]
590 .Pp
591 The
592 .Fl k
593 option may be followed by one, two, or three arguments.
594 A single argument causes a match to occur if a message has the specified key, regardless of value.
595 If two arguments are specified, a match occurs when a message has exactly the specified value for a given key.
596 For example, to find all messages sent by the portmap process:
597 .Pp
598 .Dl syslog -k Sender portmap
599 .Pp
600 Note that the
601 .Fl C
602 option is treated as an alias for the expression:
603 .Pp
604 .Dl -k Facility com.apple.console
605 .Pp
606 This provides a quick way to search for console messages.
607 .Pp
608 If three arguments are given, they are of the form
609 .Fl k Ar key operation value .
610 .Nm
611 supports the following matching operators:
612 .Pp
613 .Bl -tag -width "xxx" -compact
614 .It eq
615 equal
616 .It ne
617 not equal
618 .It gt
619 greater than
620 .It ge
621 greater than or equal to
622 .It lt
623 less than
624 .It le
625 less than or equal to
626 .El
627 .Pp
628 Additionally, the operator may be preceded by one or more of the following modifiers:
629 .Pp
630 .Bl -tag -width "xxx" -compact
631 .It C
632 case-fold
633 .It R
634 regular expression (see
635 .Xr regex 3 )
636 .It S
637 substring
638 .It A
639 prefix
640 .It Z
641 suffix
642 .It N
643 numeric comparison
644 .El
645 .Pp
646 More complex search expressions may be built by combining two or more simple expressions.
647 A complex expression that has more than one
648 .Dq -k key [[op] val]
649 term matches a message if all of the key-value operations match.
650 Logically, the result is an AND of all of key-value operations.
651 For example:
652 .Pp
653 .Dl syslog -k Sender portmap -k Time ge -2h
654 .Pp
655 finds all messages sent by portmap in the last 2 hours
656 (-2h means "two hours ago").
657 .Pp
658 The
659 .Fl o
660 option may be used to build even more complex searches by providing an OR operation.
661 If two or more sub-expressions are given, separated by
662 .Fl o
663 options, then a match occurs is a message matches any of the sub-expressions.
664 For example, to find all messages which have either a
665 .Dq Sender
666 value of
667 .Dq portmap
668 or that have a numeric priority level of 4 or less:
669 .Pp
670 .Dl syslog -k Sender portmap -o -k Level Nle 4
671 .Pp
672 Log priority levels are internally handled as an integer value between 0 and 7.
673 Level values in expressions may either be given as integers, or as string equivalents.
674 See the table string values in the SENDING MESSAGES section for details.
675 The example query above could also be specified with the command:
676 .Pp
677 .Dl syslog -k Sender portmap -o -k Level Nle warning
678 .Pp
679 .Pp
680 A special convention exists for matching time stamps.
681 An unsigned integer value is regarded as the given number of seconds since
682 0 hours, 0 minutes, 0 seconds, January 1, 1970, Coordinated Universal Time.
683 An negative integer value is regarded as the given number of seconds before the current time.
684 For example, to find all messages of Error priority level (3) or less which were logged in the last 30 seconds:
685 .Pp
686 .Dl syslog -k Level Nle error -k Time ge -30
687 .Pp
688 a relative time value may be optionally followed by one of the characters
689 .Dq s ,
690 .Dq m ,
691 .Dq h ,
692 .Dq d ,
693 or
694 .Dq w
695 to specify seconds, minutes, hours, days, or weeks respectively.
696 Upper case may be used equivalently.
697 A week is taken to be 7 complete days (i.e. 604800 seconds).
698 .Ss FILTERING CONTROLS
699 Clients of the Apple System Log facility using either the
700 .Xr asl 3
701 or
702 .Xr syslog 3
703 interfaces may specify a log filter mask.
704 The mask specifies which messages should be sent to the
705 .Nm syslogd
706 daemon by specifying a yes/no setting for each priority level.
707 Many clients set a filter mask to avoid sending relatively unimportant messages.
708 Debug or Info priority level messages are generally only useful for debugging operations.
709 By setting a filter mask, a process can improve performance by avoiding spending
710 time sending messages that are in most cases unnecessary.
711 .Pp
712 The
713 .Fl c
714 option may be used to control filtering.
715 In addition to the internal filter value that processes may set as described above,
716 the system maintains a global
717 .Dq master
718 filter.
719 This filter is normally
720 .Dq off ,
721 meaning that it has no effect.
722 If a value is set for the master filter, it overrides the local filter for all processes.
723 Root user access is required to set the master filter value.
724 .Pp
725 The current setting of the master filter mask may be inspected using:
726 .Pp
727 .Dl syslog -c 0
728 .Pp
729 The value of the master filter mask my be set by providing a second argument following
730 .Fl c Ar 0 .
731 The value may a set of characters from the set
732 .Dq pacewnid .
733 These correspond to the priority levels Emergency (Panic), Alert, Critical, Error, Warning, Notice, Info, and Debug.
734 The character
735 .Dq x
736 may be used for Error, as it is used for sending messages.
737 The master filter may be unset with:
738 .Pp
739 .Dl syslog -c 0 off
740 .Pp
741 Since it is common to use the filter as a
742 .Dq cutoff
743 mechanism, for example to cut off messages with Debug and Info priority,
744 a single character from the list above may be specified, preceded by a minus sign.
745 In this case,
746 .Nm
747 uses a filter mask starting at level 0 (Emergency)
748 .Dq up to
749 the given level.
750 For example, to set the master filter level to cause all processes to log messages from Emergency up to Debug:
751 .Pp
752 .Dl syslog -c 0 -d
753 .Pp
754 While the master filter level may be set to control the messages produced by all processes,
755 another filter mask may be specified for an individual process.
756 If a per-process filter mask is set, it overrides both the local filter mask and the master filter mask.
757 The current setting for a per-process filter mask may be inspected using
758 .Fl c Ar process ,
759 where
760 .Ar process
761 is either a PID or the name of a process.
762 If a name is used, it must uniquely identify a process.
763 To set a per-process filter mask, an second argument may be supplied following
764 .Fl c Ar process
765 as described above for the master filter mask.
766 Root access is required to set the per-process filter mask for system (UID 0) processes.
767 .Pp
768 The
769 .Nm syslogd
770 server follows filtering rules specified in the /etc/asl.conf file.
771 When the remote-control mechanism is used to change the filter of a process,
772 .Nm syslogd
773 will save any messages received from that process until the remote-control filter is turned off.
774 .Ss SERVER CONFIGURATION
775 When
776 .Nm syslogd
777 starts up, and when it receives a HUP signal, it re-reads its configuration settings from /etc/asl.conf.
778 It is sometimes useful to change configuration parameters temporarily, without needing to make changes
779 to the configuration file.
780 Any of the configuration options that may be set in the file (following an ``='' character) may also
781 be sent to syslogd using the
782 .Fl config
783 flag (without an ``='' character).
784 For example, to temporarily disable the kernel message-per-second limit:
785 .Pp
786 .Dl syslog -config mps_limit 0
787 .Pp
788 Note that only the superuser (root) may change configuration parameters.
789 .Pp
790 In addition to the parameter setting options that are described in the
791 .Xr asl.conf 5
792 manual page, an additional option:
793 .Pp
794 .Dl syslog -config reset
795 .Pp
796 will cause
797 .Nm syslogd
798 to reset its configuration.
799 .Ss ASL OUTPUT MODULES
800 ASL Output Modules are named configuration bundles used by the ASL server
801 .Nm syslogd ,
802 and by the ASL filesystem manager
803 .Nm aslmanager .
804 The /etc/asl.conf file represents the system's primary output module,
805 and is given the name
806 .Dq com.apple.asl .
807 Other modules are read from files in the /etc/asl directory.
808 File names serve as module names.
809 ASL Output Modules are described in detail in
810 .Xr asl.conf 5 .
811 .Pp
812 When invoked with
813 .Fl module ,
814 .Nm syslog
815 prints a summary of all loaded ASL Output Modules.
816 The summary includes the output files and ASL store directories used by each module,
817 a list of the module's configuration rules, and the module's current enabled or disabled status.
818 .Fl module Ar name
819 prints a summary for the module with the given name.
820 .Pp
821 ASL Output Modules may be enabled or disabled using the command:
822 .Pp
823 syslog -module
824 .Ar name
825 enable
826 .Op 0
827 .Pp
828 Note that only the superuser (root) may enable or disable a module.
829 .Pp
830 The name '*'
831 (including the single-quote characters)
832 may be used to change the status of all ASL Output Modules,
833 excluding the primary com.apple.asl module.
834 com.apple.asl may be enabled or disabled, but only specifically by name.
835 .Pp
836 If a module includes rotated files, the command:
837 .Pp
838 syslog -module
839 .Ar name
840 checkpoint
841 .Op file
842 .Pp
843 Will force the module to checkpoint all of its rotated files,
844 or just the single optionally named file.
845 The name '*'
846 (including the single-quote characters)
847 may be used to force checkpointing of all rotated files for all ASL Output Modules,
848 including the primary com.apple.asl module.
849 .Pp
850 Note that only the superuser (root) may force files to be checkpointed.
851 .Pp
852 The checkpoint action sends a command to
853 .Nm syslogd
854 and waits for a reply to be returned.
855 This means that any files currently in use will be checkpointed when the
856 .Nm syslog
857 command completes.
858 .Sh SEE ALSO
859 .Xr syslogd 8 ,
860 .Xr logger 1 ,
861 .Xr asl 3 ,
862 .Xr syslog 3 ,
863 .Xr asl.conf 5 .
864 .Sh HISTORY
865 The
866 .Nm
867 utility appeared in Mac OS X 10.4.