优先级是选择条件的第二个字段,它代表消息的紧急程度。对一个应用程序来说,它发出的哪些消息属于哪一种优先级是由当初编写它的程序员决定的,应用程序的使用者只能接受这样的安排——除非打算重新编译系统应用程序。表2按严重程度由低到高的顺序列出了所有可能的优先级。
不同的服务类型有不同的优先级,数值较大的优先级涵盖数值较小的优先级。如果某个选择条件只给出了一个优先级而没有使用任何优先级限定符,对应于这个优先级的消息以及所有更紧急的消息类型都将包括在内。比如说,如果某个选择条件里的优先级是“warning”,它实际上将把“warning”、 “err”、“crit”、“alert”和“emerg”都包括在内。
3优先级限定符
syslog允许人们使用三种限定符对优先级进行修饰:星号(*)、等号(=)和叹号(!)。熟悉规则表达式的读者应该对这三种限定符不会感到陌生。星号(*)的含义是“把本项服务生成的所有日志消息都发送到操作动作指定的地点”。就像它在规则表达式里的作用一样,星号代表“任何东西”。在前面给出的例子里,“mail.*”将把所有优先级的消息都发送到操作动作指定的/var/log/mail文件里。使用“*”限定符与使用“debug”优先级的效果完全一样,后者也将把所有类型的消息发送到指定地点。
等号(=)的含义是“只把本项服务生成的本优先级的日志消息都发送到操作动作指定的地点”。比如说,可以用“=”限定符只发送调试消息而不发送其他更紧急的消息(这将为应用程序减轻很多负担)。当你只需要发送特定优先级别的消息时,就要使用等号限定符。
就像它在编程时的用法一样,等号意味着等于且仅等于。叹号(!)的含义是“把本项服务生成的所有日志消息都发送到操作动作指定的地点,但本优先级的消息不包括在内”。比如说,这条syslog配置行将把除info优先级以外的所有消息发送到/var/log/mail文件里:
mail.*;mail.!info/var/log/mail
在这个例子里,“mail.*”将发送所有的消息,但“mail.!info”却把info优先级的消息排除在外。就像它在编程时的用法一样,叹号意味着“非”。
4 操作动作
日志信息可以分别记录到多个文件里,还可以发送到命名管道、其他程序甚至另一台机器。syslog配置文件并不复杂,既容易阅读又容易操作使用。这个文件里的注释都非常有用,应该好好读读它们.